ScreenCaptureParameters
屏幕共享的参数配置。
struct ScreenCaptureParameters {
VideoDimensions dimensions;
int frameRate;
int bitrate;
bool captureMouseCursor;
bool windowFocus;
view_t *excludeWindowList;
int excludeWindowCount;
int highLightWidth;
unsigned int highLightColor;
bool enableHighLight;
ScreenCaptureParameters()
: dimensions(1920, 1080), frameRate(5), bitrate(STANDARD_BITRATE), captureMouseCursor(true), windowFocus(false), excludeWindowList(OPTIONAL_NULLPTR), excludeWindowCount(0), highLightWidth(0), highLightColor(0), enableHighLight(false) {}
ScreenCaptureParameters(const VideoDimensions& d, int f, int b)
: dimensions(d), frameRate(f), bitrate(b), captureMouseCursor(true), windowFocus(false), excludeWindowList(OPTIONAL_NULLPTR), excludeWindowCount(0), highLightWidth(0), highLightColor(0), enableHighLight(false) {}
ScreenCaptureParameters(int width, int height, int f, int b)
: dimensions(width, height), frameRate(f), bitrate(b), captureMouseCursor(true), windowFocus(false), excludeWindowList(OPTIONAL_NULLPTR), excludeWindowCount(0), highLightWidth(0), highLightColor(0), enableHighLight(false){}
ScreenCaptureParameters(int width, int height, int f, int b, bool cur, bool fcs)
: dimensions(width, height), frameRate(f), bitrate(b), captureMouseCursor(cur), windowFocus(fcs), excludeWindowList(OPTIONAL_NULLPTR), excludeWindowCount(0), highLightWidth(0), highLightColor(0), enableHighLight(false) {}
ScreenCaptureParameters(int width, int height, int f, int b, view_t *ex, int cnt)
: dimensions(width, height), frameRate(f), bitrate(b), captureMouseCursor(true), windowFocus(false), excludeWindowList(ex), excludeWindowCount(cnt), highLightWidth(0), highLightColor(0), enableHighLight(false) {}
ScreenCaptureParameters(int width, int height, int f, int b, bool cur, bool fcs, view_t *ex, int cnt)
: dimensions(width, height), frameRate(f), bitrate(b), captureMouseCursor(cur), windowFocus(fcs), excludeWindowList(ex), excludeWindowCount(cnt), highLightWidth(0), highLightColor(0), enableHighLight(false) {}
};
dimensions
共享的屏幕流的视频编码分辨率。详见 VideoDimensions。默认值为 1920 × 1080,即 2073600 像素。该像素值为计费标准。
当共享的屏幕分辨率宽高比与该值设置不一致时,SDK 按如下策略进行编码。假设 dimensions 设为 1920 × 1080:
- 如果屏幕分辨率小于
dimensions,如 1000 × 1000,SDK 直接按 1000 × 1000 进行编码。 - 如果屏幕分辨率大于
dimensions,如 2000 × 1500,SDK 按屏幕分辨率的宽高比,即 4:3,取dimensions以内的最大分辨率进行编码,即 1440 × 1080。
frameRate
在 Windows 和 macOS 平台上,表示共享的屏幕流的视频编码帧率。单位为 fps;默认值为 5,建议不要超过 15。
bitrate
在 Windows 和 macOS 平台上,表示共享的屏幕流的视频编码码率。单位为 Kbps;默认值为 0,表示 SDK 根据当前共享屏幕的分辨率计算出一个合理的值。
captureMouseCursor
是否采集鼠标用于屏幕共享:
true:(默认)采集鼠标。false: 不采集鼠标。
false 无效(共享窗口时无影响)。windowFocus
调用 startScreenCaptureByWindowId 方法共享窗口时,是否将该窗口前置:
true: 前置窗口。false:(默认)不前置窗口。
excludeWindowList
待屏蔽窗口的 ID 列表。调用 startScreenCaptureByDisplayId 开启屏幕共享时,你可以通过该参数屏蔽指定的窗口。你可以在调用 updateScreenCaptureParameters 更新屏幕共享的配置参数时,通过该参数动态屏蔽指定的窗口。
enableHighLight
(仅适用于 macOS 和 Windows)是否对共享的窗口或屏幕进行描边:
true: 描边。false: (默认)不描边。
true,SDK 会对整个窗口或屏幕进行描边。highLightColor
(仅适用于 macOS 和 Windows)
- 在 Windows 平台上,指描边的 ARGB 颜色。默认值为 0xFF8CBF26。
- 在 macOS 平台上,
COLOR_CLASS指NSColor。
highLightWidth
(仅适用于 macOS 和 Windows)描边的宽度 (px)。默认值为 5,取值范围为 (0,50]。注: 该参数仅在 highLighted 设置为 true 时生效。
excludeWindowCount
待屏蔽窗口的数量。
注: 在 Windows 平台上,该参数最大值不超过 24,如果超过该值,则屏蔽窗口功能失效。