tencent cloud

文档反馈

最后更新时间:2024-03-19 15:50:12

    SDK 集成

    1. 集成腾讯特效 SDK,请参考 TRTC SDK 集成腾讯特效
    2. 本文档说明在 TRTC SDK 项目中集成和使用 TEBeautyKit 库
    3. 参考 demo

    SDK 使用

    步骤一:集成 TEBeautyKit

    1. 下载并解压 TEBeautyKit
    2. 把 TEBeautyKit 文件夹拷贝到自己的工程中,和 podfile 同级目录。
    3. 编辑 podfile 文件,添加下面的代码:
    pod 'TEBeautyKit',:path => 'TEBeautyKit/TEBeautyKit.podspec'

    步骤二:鉴权

    [TEBeautyKit setTELicense:@"your license" key:@"your key" completion:^(NSInteger authresult, NSString * _Nullable errorMsg) {
    NSLog(@"----------result: %zd %@",authresult,errorMsg);
    }];

    步骤三:配置美颜素材路径

    如果 json 文件中配置的素材是本地的,需要将美颜素材添加到工程中。
    - (void)initBeautyJson{
    NSString *resourcePath = [[NSBundle mainBundle]
    pathForResource:@"TEBeautyKitResources" ofType:@"bundle"];
    NSBundle *bundle = [NSBundle bundleWithPath:resourcePath];
    [[TEUIConfig shareInstance] setTEPanelViewRes:[bundle pathForResource:@"beauty_S1" ofType:@"json"]
    beautyBody:[bundle pathForResource:@"beauty_body" ofType:@"json"]
    lut:[bundle pathForResource:@"lut" ofType:@"json"]
    motion:[bundle pathForResource:@"motions" ofType:@"json"]
    makeup:[bundle pathForResource:@"makeup" ofType:@"json"]
    segmentation:[bundle pathForResource:@"segmentation" ofType:@"json"]];
    }

    步骤四:初始化并添加 TEPanelView

    -(TEPanelView *)tePanelView{
    if (!_tePanelView) {
    _tePanelView = [[TEPanelView alloc] init:nil comboType:nil];
    _tePanelView.delegate = self;
    }
    return _tePanelView;
    }
    [self.view addSubview:self.tePanelView];
    [self.tePanelView mas_makeConstraints:^(MASConstraintMaker *make) {
    make.width.mas_equalTo(self.view);
    make.centerX.mas_equalTo(self.view);
    make.height.mas_equalTo(250);
    make.bottom.mas_equalTo(self.view.mas_bottom);
    }];

    步骤五:设置视频数据回调

    [self.trtcCloud setLocalVideoProcessDelegete:self pixelFormat:TRTCVideoPixelFormat_Texture_2D bufferType:TRTCVideoBufferType_Texture];

    步骤六:在视频帧回调接口中创建 XMagic 对象和处理视频数据

    -(void)initXMagic{
    __weak __typeof(self)weakSelf = self;
    [TEBeautyKit create:^(XMagic * _Nullable api) {
    __strong typeof(self) strongSelf = weakSelf;
    strongSelf.xMagicKit = api;
    [strongSelf.teBeautyKit setXMagicApi:api];
    strongSelf.tePanelView.teBeautyKit = strongSelf.teBeautyKit;
    [strongSelf.teBeautyKit setTePanelView:strongSelf.tePanelView];
    [strongSelf.teBeautyKit setLogLevel:YT_SDK_ERROR_LEVEL];
    strongSelf.tePanelView.beautyKitApi = api;
    [strongSelf.xMagicKit registerSDKEventListener:strongSelf];
    }];
    }
    #pragma mark - TRTCVideoFrameDelegate
    - (uint32_t)onProcessVideoFrame:(TRTCVideoFrame *_Nonnull)srcFrame dstFrame:(TRTCVideoFrame *_Nonnull)dstFrame {
    if(!_xMagicKit){
    [self initXMagic];
    }
    YTProcessOutput *output = [self.teBeautyKit processTexture:srcFrame.textureId
    textureWidth:srcFrame.width textureHeight:srcFrame.height
    withOrigin:YtLightImageOriginTopLeft withOrientation:YtLightCameraRotation0];
    dstFrame.textureId = output.textureData.texture;
    return 0;
    }

    步骤七:销毁美颜

    - (void)destroyXMagic{
    [self.xMagicKit clearListeners];
    [self.xMagicKit deinit];
    self.xMagicKit = nil;
    }
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持