第三方美颜

更新时间: 2024/08/05 15:02:55

在社交娱乐或教育场景中,用户在进行视频通话或直播的过程中,常常希望向对方呈现良好的肌肤状态和精神面貌。NERTC SDK 提供了采集数据回调的 API 方法,帮助您轻松接入相芯等第三方专业美颜滤镜厂商,以完善业务场景。

相芯美颜的详细功能介绍请参见人脸特效

注意事项

  • 该设置仅在加入房间之前设置才有效。
  • 若 NERTC SDK 版本号低于3.7.0,需要在初始化 NERTC SDK 之前调用 setParameters 方法。
  • onNERtcEngineVideoFrameCaptured: rotation: 回调必须同步返回,且保证 CVPixelBufferRef 的地址值不被改变,分辨率不改变。

配置步骤

  1. 通过 setParameters 接口,将 kNERtcKeyVideoCaptureObserverEnabled 的值设置为 @(1),设置摄像头采集数据的回调。
  2. 在成功加入房间后调用 enableLocalVideo 方法开启本地视频采集。

    调用 enableLocalVideo 开启本地视频采集时,请设置 streamTypekNERtcStreamChannelTypeMainStream,否则美颜效果不会生效。

  3. 在代理方法 onNERtcEngineVideoFrameCaptured:rotation: 中,根据需求对回调回来的视频数据做相应的美颜处理。

示例代码

objc// 配置音视频引擎,将摄像头采集的数据回调给用户
NERtcEngine *coreEngine = [NERtcEngine sharedEngine];
NSDictionary *params = @{
    kNERtcKeyPublishSelfStreamEnabled: @YES,    // 打开推流
    kNERtcKeyVideoCaptureObserverEnabled: @YES  // 将摄像头采集的数据回调给用户
};
[coreEngine setParameters:params];
    
NERtcEngineContext *context = [[NERtcEngineContext alloc] init];
context.engineDelegate = self;
context.appKey = @"<#请输入您的AppKey#>";
[coreEngine setupEngineWithContext:context];
    
[coreEngine enableLocalVideo:YES streamType:kNERtcStreamChannelTypeMainStream];

// 在代理方法中对视频数据进行处理
- (void)onNERtcEngineVideoFrameCaptured:(CVPixelBufferRef)bufferRef rotation:(NERtcVideoRotationType)rotation
{
    // 对视频数据 bufferRef 进行处理, 务必保证 CVPixelBufferRef 的地址值不变,分辨率不变
}

API 参考

方法 功能描述
enableLocalVideo 开启本地视频采集。
setParameters 设置摄像头采集数据的回调。
onNERtcEngineVideoFrameCaptured:rotation: 视频帧数据回调。
此文档是否对你有帮助?
有帮助
去反馈
  • 注意事项
  • 配置步骤
  • 示例代码
  • API 参考