集成呼叫组件和第三方美颜
更新时间: 2024/08/23 10:16:57
如果您的产品中集成了呼叫组件,同时又想要集成相芯等第三方美颜,您可以参考本文中的示例代码进行实现。
业务场景
在社交娱乐或教育场景中,用户在进行视频通话或直播的过程中,常常希望向对方呈现良好的肌肤状态和精神面貌。NERTC SDK 提供了采集数据回调的 API 方法,帮助您轻松接入相芯等第三方专业美颜滤镜厂商。
呼叫组件(NERtcCallKit)是基于 NERTC 和 IM 封装的融合性场景组件,包含了呼叫和音视频通话能力。如果您的产品中集成了呼叫组件,同时又想要集成相芯等第三方美颜,您可以参考本文中的示例代码进行实现。
注意事项
该场景中无需执行初始化 RTC 的步骤,因为初始化呼叫组件时已经自动执行了初始化 RTC 的相关流程。
实现方法
-
初始化呼叫组件。
-
设置呼叫组件
engineDelegate
针对 RTC 回调的转发代理。 -
调用 NERTC 的
setParameters
接口,将kNERtcKeyVideoCaptureObserverEnabled
参数设置为 YES,开启视频数据采集回调。- 如果是主叫,请在
call
之后,调用以上命令开启视频数据采集回调。 - 如果是被叫,请在
accept
之前,调用以上命令开启视频数据采集回调。 - 如果没有开启视频数据采集回调,默认只回调视频首帧。
- 如果是主叫,请在
-
NERTC 通过
onNERtcEngineVideoFrameCaptured:rotation:
回调获取视频数据,之后对回调返回的视频数据做相应的美颜处理。
示例代码
- (void)setupCallKit {
NERtcEngine *coreEngine = [NERtcEngine sharedEngine];
// 呼叫组件初始化
NERtcCallOptions *option = [NERtcCallOptions new];
option.APNSCerName = @"your apns cer name";
NERtcCallKit *callkit = [NERtcCallKit sharedInstance];
[callkit setupAppKey:@"your app key" options:option];
//呼叫组件设置rtc代理中转
callkit.engineDelegate = self;
// 美颜设置。主叫请在 call 之后调用,被叫请在 accept 之前调用。
NSDictionary *params = @{
kNERtcKeyVideoCaptureObserverEnabled: @YES // 开启视频数据采集回调
};
[coreEngine setParameters:params];
}
// 在代理方法中对视频数据进行处理
- (void)onNERtcEngineVideoFrameCaptured:(CVPixelBufferRef)bufferRef rotation:(NERtcVideoRotationType)rotation
{
// 对视频数据 bufferRef 进行处理, 务必保证 CVPixelBufferRef 的地址值不变,分辨率不变
}
相关文档
此文档是否对你有帮助?