registerLocalVideoProcessor method
- VideoProcessor processor,
- VideoPreprocessorConfig config
@detail api
@hiddensdk(audiosdk)
@author zhushufan.ref
@brief 设置自定义视频前处理器。
使用这个视频前处理器,你能够调用 processVideoFrame{@link #IVideoProcessor#processVideoFrame} 对 RTC SDK 采集得到的视频帧进行前处理,并将处理后的视频帧用于 RTC 音视频通信。
@param processor 自定义视频处理器,详见 IVideoProcessor{@link #IVideoProcessor}。如果传入 null,则不对 RTC SDK 采集得到的视频帧进行前处理。
SDK 只持有 processor 的弱引用,你应保证其生命周期。
@param config 自定义视频前处理器适用的设置,详见 VideoPreprocessorConfig{@link #VideoPreprocessorConfig}。
当前,config 中的 required_pixel_format 仅支持:I420、TEXTURE_2D 和 Unknown:
- 设置为 Unknown 时,RTC SDK 给出供 processor 处理的视频帧格式即采集的格式。
你可以通过 pixelFormat{@link #IVideoFrame#pixelFormat} 获取实际采集的视频帧格式,支持的格式为:kVideoPixelFormatI420、 kVideoPixelFormatTexture2D 和 kVideoPixelFormatTextureOES
- 设置为 I420 或 TEXTURE_2D 时,RTC SDK 会将采集得到的视频转变为对应的格式,供前处理使用。
- 设置为其他值时,此方法调用失败。
@return
- 0: 成功。
- < 0: 失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明。
@note 经前处理后,返回给 RTC SDK 的视频帧格式仅支持 I420 和 TEXTURE_2D。
Implementation
Future<int?> registerLocalVideoProcessor(
VideoProcessor processor, VideoPreprocessorConfig config) async {
$a() => ($instance as $p_a.RTCEngine).registerLocalVideoProcessor(
packObject(processor, () => android_VideoProcessor()),
unpackObject<$p_a.VideoPreprocessorConfig>(config));
$i() => ($instance as $p_i.ByteRTCEngine).registerLocalVideoProcessor(
packObject(processor, () => ios_VideoProcessor()),
unpackObject<$p_i.ByteRTCVideoPreprocessorConfig>(config));
if (Platform.isAndroid) {
return $a();
} else if (Platform.isIOS) {
return $i();
} else {
throw UnsupportedError(
'Not Support Platform ${Platform.operatingSystem}');
}
}