AgoraScreenCaptureParameters Class Reference

Inherits from NSObject
Declared in AgoraObjects.h

Overview

设置屏幕共享编码配置的类

共享游戏画面时,声网推荐你根据下表设置 AgoraScreenCaptureParameters 中的 dimensionsframeRatebitrate

分辨率 帧率(fps) 码率(Kbps)
160 × 120 15 130
120 × 120 15 100
320 × 180 15 280
180 × 180 15 200
240 × 180 15 240
320 × 240 15 400
240 × 240 15 280
424 × 240 15 440
640 × 360 15 800
360 × 360 15 520
640 × 360 30 1200
360 × 360 30 800
480 × 360 15 640
480 × 360 30 980
640 × 480 15 1000
480 × 480 15 800
640 × 480 30 1500
480 × 480 30 1200
848 × 480 15 1220
848 × 480 30 1860
640 × 480 10 800
1280 × 720 15 2260
1280 × 720 30 3420
960 × 720 15 1820
960 × 720 30 2760
1920 × 1080 15 4160
1920 × 1080 30 6300
1920 × 1080 60 6500

Note: 共享的屏幕流的视频属性只需通过 AgoraScreenCaptureParameters 设置,与 setVideoEncoderConfiguration 无关。

  dimensions

共享的屏幕流的视频编码分辨率

@property (assign, nonatomic) CGSize dimensions

Discussion

默认值为 1920 * 1080,即 2073600 像素。该像素值为计费标准。

当共享的屏幕分辨率宽高比与该值设置不一致时,SDK 按如下策略进行编码。假设 dimensions 为 1920 * 1080:

  • 如果屏幕分辨率小于 dimensions,如 1000 * 1000,SDK 直接按 1000 * 1000 进行编码。
  • 如果屏幕分辨率大于 dimensions,如 2000 * 1500,SDK 按屏幕分辨率的宽高比,即 4:3,取 dimensions 以内的最大分辨率进行编码,即 1440 * 1080。

无论实际编码分辨率如何,均按 dimensions 设置的值计费。

Declared In

AgoraObjects.h

  frameRate

共享的屏幕流的视频编码帧率,单位为 fps;默认值为 5,建议不要超过 15。

@property (assign, nonatomic) NSInteger frameRate

Declared In

AgoraObjects.h

  bitrate

共享的屏幕流的视频编码码率,单位为 Kbps;默认值为 0,表示由 SDK 根据当前共享的分辨率计算出一个合理的值。

@property (assign, nonatomic) NSInteger bitrate

Declared In

AgoraObjects.h

  captureMouseCursor

是否采集鼠标用于屏幕共享

@property (assign, nonatomic) BOOL captureMouseCursor

Discussion

  • YES:(默认)采集鼠标
  • NO:不采集鼠标

Declared In

AgoraObjects.h

  windowFocus

调用 startScreenCaptureByWindowId 方法共享窗口时,是否将该窗口前置。

@property (assign, nonatomic) BOOL windowFocus

Availability

v3.1.0

Discussion

  • YES: 前置窗口。
  • NO: (默认)不前置窗口。

Note: 因系统限制,windowFocus 仅支持将应用的主窗口前置。

Declared In

AgoraObjects.h

  excludeWindowList

待屏蔽窗口的 ID 列表。

@property (copy, nonatomic) NSArray *excludeWindowList

Availability

v3.1.0

Discussion

调用 startScreenCaptureByDisplayId 开启主屏幕共享 (即屏幕 ID 为 0)时,你可以通过该参数屏蔽指定的窗口。开启主屏幕共享后,你可以在调用 updateScreenCaptureParameters 更新屏幕共享的配置参数时,通过该参数动态屏蔽指定的窗口。

Declared In

AgoraObjects.h

  highLighted

(仅适用于 macOS)是否对共享的窗口或屏幕进行描边:

@property (assign, nonatomic) BOOL highLighted

Availability

v3.7.0

Discussion

  • YES: 描边。
  • NO: (默认)不描边。

Note: 当你共享窗口或屏幕的部分区域时,如果设置描边,SDK 会对整个窗口或屏幕进行描边。

Declared In

AgoraObjects.h

  highLightColor

(仅适用于 macOS)描边的 ARGB 颜色。默认值为 0xFF8CBF26。

@property (strong, nonatomic) COLOR_CLASS *highLightColor

Availability

v3.7.0

Discussion

在 macOS 平台上,COLOR_CLASSNSColor

Declared In

AgoraObjects.h

  highLightWidth

(仅适用于 macOS)描边的宽度 (px)。默认值为 0,取值范围为 [0,50]。

@property (assign, nonatomic) NSUInteger highLightWidth

Availability

v3.7.0

Declared In

AgoraObjects.h