# VideoCanvas (/zh-CN/api-reference/rtc/cpp-all-platforms/class-videocanvas)

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

<a id="class_videocanvas__prototype"></a>

```cpp
struct VideoCanvas {
  uid_t uid;
  uid_t subviewUid;
  view_t view;
  uint32_t backgroundColor;
  media::base::RENDER_MODE_TYPE renderMode;
  VIDEO_MIRROR_MODE_TYPE mirrorMode;
  VIDEO_VIEW_SETUP_MODE setupMode;
  VIDEO_SOURCE_TYPE sourceType;
  int mediaPlayerId;
  Rectangle cropArea;
  bool enableAlphaMask;
  media::base::VIDEO_MODULE_POSITION position;
};
```

<a id="class_videocanvas__parameters"></a>

## 属性 [#属性]

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

发布视频源的用户 ID。

</Parameter>
<a id="subviewuid"></a>
<Parameter name="subviewUid">

在视频合流中发布特定子视频流的用户 ID。

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

视频显示窗口。

:::note
注： 在一个 [VideoCanvas](/zh-CN/api-reference/rtc/cpp-all-platforms/class-videocanvas) 中，只能设置 `view` 或 `surfaceTexture` 其中之一。如果两者都设置，仅 `view` 的设置生效。
:::

</Parameter>
<a id="backgroundcolor"></a>
<Parameter name="backgroundColor">

视频画布的背景颜色，使用 RGBA 格式。默认值为 0x00000000，表示黑色。

</Parameter>
<a id="rendermode"></a>
<Parameter name="renderMode">

视频的渲染模式。详见 [RENDER_MODE_TYPE](/zh-CN/api-reference/rtc/cpp-all-platforms/enum-rendermodetype)。

</Parameter>
<a id="mirrormode"></a>
<Parameter name="mirrorMode">

视图的镜像模式。详见 [VIDEO_MIRROR_MODE_TYPE](/zh-CN/api-reference/rtc/cpp-all-platforms/enum-videomirrormodetype)。

:::note
注：

- 本地视频视图的镜像模式：使用前置摄像头时，SDK 默认开启镜像模式；使用后置摄像头时，SDK 默认关闭镜像模式。
- 远端用户默认关闭镜像模式。
:::

</Parameter>
<a id="setupmode"></a>
<Parameter name="setupMode">

视图的设置模式。详见 [VIDEO_VIEW_SETUP_MODE](/zh-CN/api-reference/rtc/cpp-all-platforms/enum-videoviewsetupmode)。

</Parameter>
<a id="sourcetype"></a>
<Parameter name="sourceType">

视频源的类型。详见 [VIDEO_SOURCE_TYPE](/zh-CN/api-reference/rtc/cpp-all-platforms/enum-videosourcetype)。

</Parameter>
<a id="mediaplayerid"></a>
<Parameter name="mediaPlayerId">

媒体播放器的 ID。可通过调用 [getMediaPlayerId](/zh-CN/api-reference/rtc/cpp-all-platforms/play/mediaplayer/mediaplayer-info#api_imediaplayer_getmediaplayerid) 获取设备 ID。

</Parameter>
<a id="croparea"></a>
<Parameter name="cropArea">

视频帧的显示区域。`width` 和 `height` 表示该区域的视频像素宽度和高度。默认值为 NULL（即 `width` 或 `height` 为 0），表示显示视频帧的实际分辨率。详见 [Rectangle](/zh-CN/api-reference/rtc/cpp-all-platforms/class-rectangle)。

</Parameter>
<a id="enablealphamask"></a>
<Parameter name="enableAlphaMask">

:::note
注：

- 仅当发送端开启 Alpha 通道传输时，接收端才能渲染 Alpha 通道信息。
- 如需开启 Alpha 通道传输，请[联系技术支持](https://ticket.shengwang.cn/)。
:::

是否启用 Alpha 蒙版渲染：

- true：启用 Alpha 蒙版渲染。
- false：（默认）关闭 Alpha 蒙版渲染。

Alpha 蒙版渲染可创建具有透明效果的图像，并从视频中提取人像。结合其他方法使用时，可实现画中画、人像水印等效果。

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

视频帧在视频链路中的观测位置。详见 [VIDEO_MODULE_POSITION](/zh-CN/api-reference/rtc/cpp-all-platforms/enum-videomoduleposition)。

</Parameter>
</ParameterList>
