# FScreenCaptureParameters (/zh-CN/api-reference/rtc/unreal-blueprint/class-screencaptureparameters)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

<a id="class_screencaptureparameters__prototype"></a>

```cpp
USTRUCT(BlueprintType)
struct FScreenCaptureParameters
{
	GENERATED_BODY()
public:
	UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ScreenCaptureParameters")
	FVideoDimensions dimensions = FVideoDimensions();
	UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ScreenCaptureParameters")
	int frameRate = 5;
	UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ScreenCaptureParameters")
	int bitrate = 0;
	UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ScreenCaptureParameters")
	bool captureMouseCursor = true;
	UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ScreenCaptureParameters")
	bool windowFocus = false;
	UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ScreenCaptureParameters")
	int64 excludeWindowList = 0;
	UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ScreenCaptureParameters")
	int excludeWindowCount = 0;
	UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ScreenCaptureParameters")
	int highLightWidth = 0;
	UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ScreenCaptureParameters")
	int highLightColor = 0;
	UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ScreenCaptureParameters")
	bool enableHighLight = false;
	FScreenCaptureParameters(){}
	FScreenCaptureParameters(const agora::rtc::ScreenCaptureParameters & AgoraData){
		dimensions = FVideoDimensions(AgoraData.dimensions);
		frameRate = AgoraData.frameRate;
		bitrate = AgoraData.bitrate;
		captureMouseCursor = AgoraData.captureMouseCursor;
		windowFocus = AgoraData.windowFocus;
						highLightWidth = AgoraData.highLightWidth;
		highLightColor = AgoraData.highLightColor;
		enableHighLight = AgoraData.enableHighLight;
	}
	agora::rtc::ScreenCaptureParameters CreateAgoraData() const {
		agora::rtc::ScreenCaptureParameters AgoraData;
		AgoraData.dimensions = dimensions.CreateAgoraData();
		AgoraData.frameRate = frameRate;
		AgoraData.bitrate = bitrate;
		AgoraData.captureMouseCursor = captureMouseCursor;
		AgoraData.windowFocus = windowFocus;
						AgoraData.highLightWidth = highLightWidth;
		AgoraData.highLightColor = highLightColor;
		AgoraData.enableHighLight = enableHighLight;
		return AgoraData;
	}
	void FreeAgoraData(agora::rtc::ScreenCaptureParameters& AgoraData) const {
		dimensions.FreeAgoraData(AgoraData.dimensions);
	}
};
```

<a id="class_screencaptureparameters__parameters"></a>

## 属性 [#属性]

<ParameterList>
<a id="dimensions"></a>
<Parameter name="dimensions">

屏幕共享流的视频编码分辨率。详见 [FUABT_VideoDimensions](/zh-CN/api-reference/rtc/unreal-blueprint/class-videodimensions)。默认值为 1920 × 1080，即 2073600 像素。该像素值为计费标准。

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

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

:::note
注： 在共享文档的场景（SCREEN_SCENARIO_DOCUMENT）下设置编码分辨率时，选择以下两种方式其中之一。

- 如果你需要最优的画质，建议将编码分辨率设置为与采集分辨率相同。
- 如果你希望在画质、带宽和系统性能之间达到相对平衡，则：

  - 当采集分辨率大于 1920 × 1080 时，建议编码分辨率不低于 1920 × 1080。
  - 当采集分辨率低于 1920 × 1080 时，建议编码分辨率不低于 1280 × 720。
:::

</Parameter>
<a id="framerate"></a>
<Parameter name="frameRate">

在 Windows 和 macOS 平台上，表示屏幕共享流的视频编码帧率。单位为 fps；默认值为 5，建议不要超过 15。

</Parameter>
<a id="bitrate"></a>
<Parameter name="bitrate">

在 Windows 和 macOS 平台上，表示屏幕共享流的视频编码码率。单位为 Kbps；默认值为 0，表示 SDK 根据当前共享屏幕的分辨率计算出一个合理的值。

</Parameter>
<a id="capturemousecursor"></a>
<Parameter name="captureMouseCursor">

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

- `true`:（默认）采集鼠标。
- `false`: 不采集鼠标。

</Parameter>
<a id="windowfocus"></a>
<Parameter name="windowFocus">

调用 [StartScreenCaptureByWindowId](/zh-CN/api-reference/rtc/unreal-blueprint/video/screencapture#api_irtcengine_startscreencapturebywindowid) 方法共享窗口时，是否将该窗口前置：

- `true`: 前置窗口。
- `false`:（默认）不前置窗口。

:::note
注： 由于 macOS 系统限制，设置该成员将窗口前置时，如果当前的应用存在多个窗口，只会将主窗口前置。
:::

</Parameter>
<a id="excludewindowlist"></a>
<Parameter name="excludeWindowList">

待屏蔽窗口的 ID 列表。调用 [StartScreenCaptureByDisplayId](/zh-CN/api-reference/rtc/unreal-blueprint/video/screencapture#api_irtcengine_startscreencapturebydisplayid) 开启屏幕共享时，你可以通过该参数屏蔽指定的窗口。你可以在调用 [UpdateScreenCaptureParameters](/zh-CN/api-reference/rtc/unreal-blueprint/video/screencapture#api_irtcengine_updatescreencaptureparameters) 更新屏幕共享的配置参数时，通过该参数动态屏蔽指定的窗口。

</Parameter>
<a id="enablehighlight"></a>
<Parameter name="enableHighLight">

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

- `true`: 描边。
- `false`: （默认）不描边。

:::note
注： 当你在共享窗口或屏幕的部分区域时，如果将该参数设置为 `true`，SDK 会对整个窗口或屏幕进行描边。
:::

</Parameter>
<a id="highlightcolor"></a>
<Parameter name="highLightColor">

(仅适用于 macOS 和 Windows)

- 在 Windows 平台上，指描边的 ARGB 颜色。默认值为 0xFF8CBF26。
- 在 macOS 平台上，`COLOR_CLASS` 指 `NSColor`。

</Parameter>
<a id="highlightwidth"></a>
<Parameter name="highLightWidth">

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

:::note
注： 该参数仅在 highLighted 设置为 `true` 时生效。
:::

</Parameter>
<a id="excludewindowcount"></a>
<Parameter name="excludeWindowCount">

待屏蔽窗口的数量。

:::note
注： 在 Windows 平台上，该参数最大值不超过 24，如果超过该值，则屏蔽窗口功能失效。
:::

</Parameter>
</ParameterList>
