Method startScreenCapture:config:
startScreenCapture:config:
开始屏幕采集并指定视频源。
Objective-C
- (int)startScreenCapture:(AgoraVideoSourceType)sourceType config:(AgoraScreenCaptureConfiguration * _Nullable)config NS_SWIFT_NAME(startScreenCapture(_:config:));
自从
v4.2.0
注意
该方法仅适用于 macOS 和 Windows 平台。
适用场景
在屏幕共享场景下,你需要调用该方法开始采集屏幕视频流。
SDK 支持一系列开启屏幕采集的方法,它们之间存在以下区别,请根据实际场景选用:
- startScreenCaptureByDisplayId:regionRect:captureParams:/startScreenCaptureByWindowId:regionRect:captureParams::仅支持采集单个屏幕或窗口,适合仅共享单个屏幕的场景。
- startScreenCapture:config::支持指定多个视频源,以采集多路屏幕共享流,用于本地合图或者多频道发布场景。
调用时机
该方法在加入频道前后均可调用,区别如下:
- 如果在加入频道前调用该方法,然后调用 joinChannelByToken:channelId:uid:mediaOptions:joinSuccess: 加入频道,并设置 publishScreenCaptureVideo 为
YES
,即可开始屏幕共享。 - 如果在加入频道后调用该方法,然后调用 updateChannelWithMediaOptions: 更新频道媒体选项,并设置 publishScreenCaptureVideo 为
YES
,即可开始屏幕共享。
调用限制
- 如果调用该方法开始屏幕采集,则停止屏幕采集时需要调用 stopScreenCapture: 。
- 在 Windows 平台上,最多支持 4 路屏幕采集的视频流。
参数
- sourceType
- 视频源的类型,详见 AgoraVideoSourceType。
- config
- 屏幕采集配置。详见 AgoraScreenCaptureConfiguration。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。