本地合图
startLocalVideoTranscoder
开启本地合图。
- (int)startLocalVideoTranscoder:(AgoraLocalTranscoderConfiguration* _Nonnull)config NS_SWIFT_NAME(startLocalVideoTranscoder(_:));
调用该方法后,你可以在本地将多路视频流合并为一路视频流。例如:将摄像头采集的视频流、屏幕共享流、媒体播放器中的视频流、远端视频流、视频文件、图片等合并为一路视频流,然后将已合图的视频流发布到频道中。
注:
-
本地合图对 CPU 的消耗较高,声网建议你在性能较高的设备上开启该功能。
-
如果你需要对本地采集的视频流进行合图,SDK 支持如下采集组合:
-
在 iOS 平台上,最多支持 2 路摄像头采集的视频流(需要设备本身支持双摄或支持外接摄像头)+ 1 路屏幕共享合图。
-
-
如果你需要对本地采集的视频流进行合图,需要在
startCameraCapture
或startScreenCapture
之后调用该方法。 -
如果你要将合图后的视频流发布到频道中,需要在调用
joinChannelByToken [2/4]
或updateChannelWithMediaOptions
时,将AgoraRtcChannelMediaOptions
中的publishTranscodedVideoTrack
设置为YES
。
参数
参数名 | 描述 |
---|---|
config | 本地合图的配置,详见
|
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
stopLocalVideoTranscoder
停止本地合图。
- (int)stopLocalVideoTranscoder NS_SWIFT_NAME(stopLocalVideoTranscoder());
调用 startLocalVideoTranscoder
后, 如果你希望停止本地合图,请调用该方法。
updateLocalTranscoderConfiguration
更新本地合图配置。
- (int)updateLocalTranscoderConfiguration:(AgoraLocalTranscoderConfiguration* _Nonnull)config NS_SWIFT_NAME(updateLocalTranscoderConfiguration(_:));
调用 startLocalVideoTranscoder
后,如果你希望更新本地合图配置,请调用该方法。
注: 如果你想要更新用于合图的的本地采集视频源类型,比如:增加第二路摄像头或者屏幕采集的视频,需要在 startCameraCapture
或 startScreenCapture
之后调用该方法。
参数
参数名 | 描述 |
---|---|
config | 本地合图的配置,详见 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
didLocalVideoTranscoderErrorWithStream
本地合图发生错误回调。
- (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didLocalVideoTranscoderErrorWithStream:(AgoraTranscodingVideoStream * _Nonnull )stream
errorCode:(AgoraVideoTranscoderError)errorCode NS_SWIFT_NAME(rtcEngine(_:didLocalVideoTranscoderErrorWithStream:errorCode:));
v4.2.0
当你调用 startLocalVideoTranscoder
或 updateLocalTranscoderConfiguration
失败时,SDK 会触发该回调,报告合图失败的原因。
参数
参数名 | 描述 |
---|---|
stream | 合图失败的视频流。详见 |
errorCode | 本地合图出错原因。详见 |