屏幕采集
- macOS
更新时间不可用
getScreenCaptureSourcesWithThumbSize:iconSize:includeScreen:
获取可共享的屏幕和窗口列表。
- (NSArray<AgoraScreenCaptureSourceInfo*>* _Nullable)getScreenCaptureSourcesWithThumbSize:(NSSize)thumbSize iconSize:(NSSize)iconSize includeScreen:(BOOL)includeScreen NS_SWIFT_NAME(getScreenCaptureSources(withThumbSize:iconSize:includeScreen:));你可以在共享屏幕或窗口前调用该方法,以获取可共享的屏幕和窗口列表。用户可以通过列表中的缩略图轻松选择要共享的特定屏幕或窗口。该列表还包含窗口 ID 和屏幕 ID 等信息,你可以使用这些信息调用 startScreenCaptureByWindowId 或 startScreenCaptureByDisplayId 开始共享。
参数
| 参数名 | 描述 |
|---|---|
thumbSize | |
iconSize | |
includeScreen |
返回值
- 方法调用成功,返回 AgoraScreenCaptureSourceInfo 对象数组,详见 AgoraScreenCaptureSourceInfo。
- 方法调用失败,返回 nil。
所属接口类
setScreenCaptureScenario:
设置屏幕共享场景。
- (int)setScreenCaptureScenario:(AgoraScreenScenarioType)scenarioType NS_SWIFT_NAME(setScreenCaptureScenario(_:));调用该方法设置屏幕共享场景。SDK 会根据设置的场景优化共享的视频质量和用户体验。
注: 声网建议你在加入频道前调用此方法。
参数
| 参数名 | 描述 |
|---|---|
scenarioType | 屏幕共享场景。详见 AgoraScreenScenarioType。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
startScreenCapture:config:
开始屏幕共享。
- (int)startScreenCapture:(AgoraVideoSourceType)sourceType config:(AgoraScreenCaptureConfiguration * _Nullable)config NS_SWIFT_NAME(startScreenCapture(_:config:));适用场景
适用于屏幕共享场景,支持多频道使用。
参数
| 参数名 | 描述 |
|---|---|
sourceType | 屏幕来源类型,详见 AgoraVideoSourceType。 |
config | 屏幕共享的配置,详见 AgoraScreenCaptureConfiguration。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
startScreenCaptureByDisplayId:regionRect:captureParams:
通过指定屏幕 ID 采集屏幕。
- (int)startScreenCaptureByDisplayId:(UInt32)displayId
regionRect:(CGRect)regionRect
captureParams:(AgoraScreenCaptureParameters *_Nonnull)captureParams NS_SWIFT_NAME(startScreenCapture(byDisplayId:regionRect:captureParams:));采集整个屏幕或部分屏幕区域的视频流。
适用场景
在屏幕共享场景中,你需要调用此方法开始采集屏幕视频流。
调用时机
你可以在加入频道前或加入频道后调用此方法,具体区别如下:
- 在加入频道前调用此方法,然后调用
joinChannelByToken加入频道,并将publishScreenTrack或publishSecondaryScreenTrack设置为 YES,以开始屏幕共享。 - 在加入频道后调用此方法,然后调用 updateChannelWithMediaOptions: 并将
publishScreenTrack或publishSecondaryScreenTrack设置为 YES,以开始屏幕共享。
参数
| 参数名 | 描述 |
|---|---|
displayId | |
regionRect | |
captureParams | 屏幕共享配置。默认视频分辨率为 1920 × 1080,即 2,073,600 像素。声网会根据该参数的值计算费用。屏幕共享视频流的视频属性仅需通过该参数设置,与 setVideoEncoderConfiguration: 无关。详见 AgoraScreenCaptureParameters。 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见错误码了解详情和解决建议。
- -2:参数无效。
- -8:屏幕共享状态无效。可能是因为你已共享了其他屏幕或窗口。请尝试调用 stopScreenCapture 停止当前共享,然后重新开始屏幕共享。
所属接口类
startScreenCaptureByWindowId:regionRect:captureParams:
通过指定窗口 ID 采集整个或部分窗口的屏幕内容。
- (int)startScreenCaptureByWindowId:(UInt32)windowId
regionRect:(CGRect)regionRect
captureParams:(AgoraScreenCaptureParameters *_Nonnull)captureParams NS_SWIFT_NAME(startScreenCapture(byWindowId:regionRect:captureParams:));你需要指定要采集的窗口的 ID,可以采集整个窗口或窗口的部分区域。
注: 该方法仅适用于 macOS 和 Windows 平台。
适用场景
在屏幕共享场景中,你需要调用该方法开始采集屏幕视频流。
调用时机
你可以在加入频道前或加入频道后调用该方法,具体如下:
- 在加入频道前调用该方法,然后调用
joinChannelByToken加入频道,并将publishScreenTrack或publishSecondaryScreenTrack设置为 YES,以开始屏幕共享。 - 在加入频道后调用该方法,然后调用 updateChannelWithMediaOptions: 并将
publishScreenTrack或publishSecondaryScreenTrack设置为 YES,以开始屏幕共享。
参数
| 参数名 | 描述 |
|---|---|
windowId | |
regionRect | |
captureParams | 屏幕共享配置。默认视频分辨率为 1920 × 1080,即 2,073,600 像素。声网会根据该参数的值计算费用。详见 AgoraScreenCaptureParameters。 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见错误码了解详情和解决建议。
- -2:参数无效。
- -8:屏幕共享状态无效。可能是因为你已共享了其他屏幕或窗口。请尝试调用 stopScreenCapture 停止当前共享,然后重新开始共享屏幕。
所属接口类
stopScreenCapture
停止屏幕采集。
- (int)stopScreenCapture NS_SWIFT_NAME(stopScreenCapture());适用场景
适用于以下场景:
- iOS:如果你通过调用
startScreenCapture:开始屏幕采集,则需要调用此方法停止屏幕采集。 - macOS:如果你通过调用
startScreenCaptureByWindowId:regionRect:captureParams:或startScreenCaptureByDisplayId:regionRect:captureParams:开始屏幕采集,则需要调用此方法停止屏幕采集。
调用时机
你可以在加入频道前或后调用此方法。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
stopScreenCapture:
停止来自指定视频源的屏幕采集。
- (int)stopScreenCapture:(AgoraVideoSourceType)sourceType NS_SWIFT_NAME(stopScreenCapture(_:));调用 startScreenCapture:config: 开始从一个或多个屏幕采集屏幕后,需调用此方法停止屏幕采集。你需要通过 sourceType 参数指定要停止的屏幕。
调用时机
你可以在加入频道前或后调用此方法。
参数
| 参数名 | 描述 |
|---|---|
sourceType | 视频源的类型,详见 AgoraVideoSourceType。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
updateScreenCaptureParameters:
更新屏幕采集参数。
- (int)updateScreenCaptureParameters:(AgoraScreenCaptureParameters * _Nonnull)captureParams NS_SWIFT_NAME(updateScreenCaptureParameters(_:));注: 请在开始屏幕共享或窗口共享后调用此方法。
参数
| 参数名 | 描述 |
|---|---|
captureParams | 屏幕共享的编码参数。屏幕共享流的视频属性只需通过该参数设置,与 setVideoEncoderConfiguration: 无关。详见 AgoraScreenCaptureParameters。 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见错误码了解详情和解决建议。
- -2:参数无效。
- -8:屏幕共享状态无效。可能是因为你已共享了其他屏幕或窗口。请尝试调用 stopScreenCapture 停止当前共享,然后重新开始共享屏幕。
所属接口类
updateScreenCaptureRegion:
更新屏幕采集区域。
- (int)updateScreenCaptureRegion:(CGRect)rect NS_SWIFT_NAME(updateScreenCaptureRegion(_:));你可以通过该方法更新屏幕或窗口的采集区域。
参数
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。