本地合图
startLocalVideoTranscoder:
开始本地合图。
- (int)startLocalVideoTranscoder:(AgoraLocalTranscoderConfiguration* _Nonnull)config NS_SWIFT_NAME(startLocalVideoTranscoder(_:));
调用该方法后,你可以在本地将多个视频流合并为一个视频流。例如,你可以将摄像头采集的视频流、屏幕共享、媒体播放器、远端视频、视频文件、图片等视频流合并为一个视频流,并将该合图视频流发布到频道中。
- 在 iOS 上,支持最多 2 路摄像头采集的视频流(设备本身需支持双摄或支持外接摄像头)+ 1 路屏幕共享流。
- 在 macOS 上,支持最多 4 路摄像头采集的视频流 + 1 路屏幕共享流。
适用场景
适用于远程会议、直播、在线教育等场景,便于用户查看和管理多个视频流,并支持人像画中画等功能。
调用时机
如果需要合成本地采集的视频流,需要在调用 startCameraCapture 或 startScreenCapture(iOS)/startScreenCapture(macOS)之后调用该方法。 如果希望将合图视频流发布到频道中,需要在调用 joinChannelByToken 或 updateChannelWithMediaOptions 时,将 AgoraRtcChannelMediaOptions 中的 publishTranscodedVideoTrack 设置为 YES。
相关回调
调用该方法失败时,SDK 会触发 rtcEngine:didLocalVideoTranscoderErrorWithStream:errorCode: 回调报告失败原因。
参数
- config
- 本地合图的配置,详见 AgoraLocalTranscoderConfiguration。信息
- 每路参与本地合图的视频流的最大分辨率为 4096 × 2160。若超过该限制,合图不生效。
- 合图后的视频流的最大分辨率为 4096 × 2160。
返回值
0:方法调用成功。 < 0:方法调用失败。
所属接口类stopLocalVideoTranscoder
停止本地合图。
- (int)stopLocalVideoTranscoder NS_SWIFT_NAME(stopLocalVideoTranscoder());
调用 startLocalVideoTranscoder: 方法后,如果你想停止本地合图,可以调用该方法。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
updateLocalTranscoderConfiguration:
更新本地合图配置。
- (int)updateLocalTranscoderConfiguration:(AgoraLocalTranscoderConfiguration* _Nonnull)config NS_SWIFT_NAME(updateLocalTranscoderConfiguration(_:));
调用 startLocalVideoTranscoder: 后,如果你想更新本地合图配置,调用该方法。
参数
- config
- 本地合图的配置。详见 AgoraLocalTranscoderConfiguration。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
rtcEngine:didLocalVideoTranscoderErrorWithStream:errorCode:
本地合图过程中发生错误时触发的回调。
- (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine didLocalVideoTranscoderErrorWithStream:(AgoraTranscodingVideoStream * _Nonnull )stream
errorCode:(AgoraVideoTranscoderError)errorCode NS_SWIFT_NAME(rtcEngine(_:didLocalVideoTranscoderErrorWithStream:errorCode:));
当你调用 startLocalVideoTranscoder: 或 updateLocalTranscoderConfiguration: 失败时,SDK 会触发该回调报告失败原因。
触发时机
该回调在本地合图过程中发生错误时被触发。
参数
- stream
- 在视频合图过程中无法被合图的视频流。详见 AgoraTranscodingVideoStream。
- errorCode
- 本地合图错误的原因。详见 AgoraVideoTranscoderError。