# 视频渲染 (/zh-CN/api-reference/rtc/harmonyos/video/video-rendering)

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

<a id="toc_video_rendering"></a>

<a id="api_irtcengine_setlocalrendermode2"></a>

<a id="ariaid-title2"></a>

## setLocalRenderMode [#setlocalrendermode]

更新本地视图显示模式。

<a id="api_irtcengine_setlocalrendermode2__prototype"></a>

```ts
public abstract setLocalRenderMode(renderMode: number, mirrorMode: number): number;
```

<a id="api_irtcengine_setlocalrendermode2__detailed_desc"></a>

初始化本地用户视图后，你可以调用该方法更新本地用户视图的渲染和镜像模式。该方法只影响本地用户看到的视频画面，不影响本地视频的发布。

<a id="api_irtcengine_setlocalrendermode2__timing"></a>

### 调用时机 [#调用时机]

- 请在调用 [setupLocalVideo](/zh-CN/api-reference/rtc/harmonyos/video/video-rendering#api_irtcengine_setuplocalvideo) 方法初始化本地视图后，调用该方法。
- 你可以在通话中多次调用该方法，多次更新本地用户视图的显示模式。

<a id="api_irtcengine_setlocalrendermode2__restriction"></a>

### 调用限制 [#调用限制]

无。

<a id="api_irtcengine_setlocalrendermode2__parameters"></a>

### 参数 [#参数]

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

本地视图显示模式。

<a id="api_irtcengine_setlocalrendermode2__rendermodetype"></a>

- RENDER_MODE_HIDDEN (1)：优先保证视窗被填满。视频尺寸等比缩放，直至整个视窗被视频填满。如果视频长宽与显示窗口不同，多出的视频将被截掉。
- RENDER_MODE_FIT (2)：优先保证视频内容全部显示。视频尺寸等比缩放，直至视频窗口的一边与视窗边框对齐。如果视频长宽与显示窗口不同，视窗上未被填满的区域将被涂黑。

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

本地视图的镜像模式。

<a id="api_irtcengine_setlocalrendermode2__videomirrormodetype"></a>

- VIDEO_MIRROR_MODE_AUTO (0)：SDK 决定镜像模式。如果你使用前置摄像头，默认启动本地视图镜像模式；如果你启用后置摄像头，默认关闭本地视图镜像模式。
- VIDEO_MIRROR_MODE_ENABLED (1)：开启本地视图的镜像模式。
- VIDEO_MIRROR_MODE_DISABLED (2)：关闭本地视图的镜像模式。

:::caution
注意： 如果你使用前置摄像头，默认启动本地用户视图镜像模式；如果你使用后置摄像头，默认关闭本地视图镜像模式。
:::

</Parameter>
</ParameterList>

<a id="api_irtcengine_setlocalrendermode2__return_values"></a>

### 返回值 [#返回值]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类]

- [RtcEngine](/zh-CN/api-reference/rtc/harmonyos/rtc-interface-class#class_irtcengine)

<a id="api_irtcengine_setremoterendermode2"></a>

<a id="ariaid-title3"></a>

## setRemoteRenderMode [#setremoterendermode]

更新远端视图显示模式。

<a id="api_irtcengine_setremoterendermode2__prototype"></a>

```ts
public abstract setRemoteRenderMode(uid: number, renderMode: number, mirrorMode: number): number;
```

<a id="api_irtcengine_setremoterendermode2__detailed_desc"></a>

### 详情 [#详情]

初始化远端用户视图后，你可以调用该方法更新远端用户视图在本地显示时的渲染和镜像模式。该方法只影响本地用户看到的视频画面。

:::caution
注意：

- 请在调用 [setupRemoteVideo](/zh-CN/api-reference/rtc/harmonyos/video/video-rendering#api_irtcengine_setupremotevideo) 方法初始化远端视图后，调用该方法。
- 你可以在通话中多次调用该方法，多次更新远端用户视图的显示模式。
:::

<a id="api_irtcengine_setremoterendermode2__parameters"></a>

### 参数 [#参数-1]

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

远端用户 ID。

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

远端用户视图的渲染模式。

- RENDER_MODE_HIDDEN (1)：优先保证视窗被填满。视频尺寸等比缩放，直至整个视窗被视频填满。如果视频长宽与显示窗口不同，多出的视频将被截掉。
- RENDER_MODE_FIT (2)：优先保证视频内容全部显示。视频尺寸等比缩放，直至视频窗口的一边与视窗边框对齐。如果视频长宽与显示窗口不同，视窗上未被填满的区域将被涂黑。

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

远端用户视图的镜像模式。

- VIDEO_MIRROR_MODE_AUTO (0)：SDK 决定镜像模式。如果你使用前置摄像头，默认启动本地视图镜像模式；如果你启用后置摄像头，默认关闭本地视图镜像模式。
- VIDEO_MIRROR_MODE_ENABLED (1)：开启本地视图的镜像模式。
- VIDEO_MIRROR_MODE_DISABLED (2)：关闭本地视图的镜像模式。

</Parameter>
</ParameterList>

<a id="api_irtcengine_setremoterendermode2__return_values"></a>

### 返回值 [#返回值-1]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-1]

- [RtcEngine](/zh-CN/api-reference/rtc/harmonyos/rtc-interface-class#class_irtcengine)

<a id="api_irtcengineex_setremoterendermodeex"></a>

<a id="ariaid-title4"></a>

## setRemoteRenderModeEx [#setremoterendermodeex]

设置远端视图显示模式。

<a id="api_irtcengineex_setremoterendermodeex__prototype"></a>

```ts
public abstract setRemoteRenderModeEx(uid:number,renderMode:number,mirrorMode:number,connection:RtcConnection):number;
```

<a id="api_irtcengineex_setremoterendermodeex__detailed_desc"></a>

### 详情 [#详情-1]

初始化远端用户视图后，你可以调用该方法更新远端用户视图在本地显示时的渲染和镜像模式。该方法只影响本地用户看到的视频画面。

<a id="api_irtcengineex_setremoterendermodeex__note_dpq_mtr_mqb"></a>

:::caution
注意：

<a id="api_irtcengineex_setremoterendermodeex__ul_ft3_ntr_mqb"></a>

- 请在调用 [setupRemoteVideo](/zh-CN/api-reference/rtc/harmonyos/video/video-rendering#api_irtcengine_setupremotevideo) 方法初始化远端视图后，调用该方法。
- 你可以在通话中多次调用该方法，多次更新远端用户视图的显示模式。
:::

<a id="api_irtcengineex_setremoterendermodeex__parameters"></a>

### 参数 [#参数-2]

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

远端用户 ID。

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

远端视图显示模式：

- RENDER_MODE_HIDDEN (1)：优先保证视窗被填满。视频尺寸等比缩放，直至整个视窗被视频填满。如果视频长宽与显示窗口不同，多出的视频将被截掉。
- RENDER_MODE_FIT (2)：优先保证视频内容全部显示。视频尺寸等比缩放，直至视频窗口的一边与视窗边框对齐。如果视频长宽与显示窗口不同，视窗上未被填满的区域将被涂黑。

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

远端用户视图的镜像模式：

- VIDEO_MIRROR_MODE_AUTO (0)：SDK 决定镜像模式。如果你使用前置摄像头，默认启动本地视图镜像模式；如果你启用后置摄像头，默认关闭本地视图镜像模式。
- VIDEO_MIRROR_MODE_ENABLED (1)：开启本地视图的镜像模式。
- VIDEO_MIRROR_MODE_DISABLED (2)：关闭本地视图的镜像模式。

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

Connection 信息。详见 [RtcConnection](/zh-CN/api-reference/rtc/harmonyos/class-rtcconnection)。

</Parameter>
</ParameterList>

<a id="api_irtcengineex_setremoterendermodeex__return_values"></a>

### 返回值 [#返回值-2]

- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

<a id="api_imediaplayer_setrendermode"></a>

<a id="ariaid-title5"></a>

## setRenderMode [#setrendermode]

设置播放器视图的渲染模式。

<a id="api_imediaplayer_setrendermode__prototype"></a>

```ts
public abstract setRenderMode(mode:number):number;
```

<a id="api_imediaplayer_setrendermode__parameters"></a>

### 参数 [#参数-3]

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

播放器视图的渲染模式：

- RENDER_MODE_HIDDEN (1)：优先保证视窗被填满。视频尺寸等比缩放，直至整个视窗被视频填满。如果视频长宽与显示窗口不同，多出的视频将被截掉。
- RENDER_MODE_FIT (2)：优先保证视频内容全部显示。视频尺寸等比缩放，直至视频窗口的一边与视窗边框对齐。如果视频长宽与显示窗口不同，视窗上未被填满的区域将被涂黑。

</Parameter>
</ParameterList>

<a id="api_imediaplayer_setrendermode__return_values"></a>

### 返回值 [#返回值-3]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-2]

- [IMediaPlayer](/zh-CN/api-reference/rtc/harmonyos/rtc-interface-class#class_imediaplayer)

<a id="api_irtcengine_setuplocalvideo"></a>

<a id="ariaid-title6"></a>

## setupLocalVideo [#setuplocalvideo]

初始化本地视图。

<a id="api_irtcengine_setuplocalvideo__prototype"></a>

```ts
public abstract setupLocalVideo(canvas: VideoCanvas): number;
```

<a id="api_irtcengine_setuplocalvideo__detailed_desc"></a>

该方法初始化本地视图并设置本地用户视频显示属性，只影响本地用户看到的视频画面，不影响本地视频的发布。调用该方法绑定本地视频流的显示视窗 (view)，并设置本地用户视图的渲染模式和镜像模式。

退出频道后绑定仍然有效。如果需要停止渲染或解除绑定，可以调用该方法将参数 view 设为 NULL，以停止渲染并清理渲染缓存。

:::caution
注意：

- 如果你希望在通话中仅更新本地用户视图的渲染或镜像模式，请使用 [setLocalRenderMode](/zh-CN/api-reference/rtc/harmonyos/video/video-rendering#api_irtcengine_setlocalrendermode2) 方法。
:::

<a id="api_irtcengine_setuplocalvideo__scenario"></a>

### 适用场景 [#适用场景]

在 App 开发中，通常在初始化后调用该方法进行本地视频设置，然后再加入频道。

如果你需要在本地视频预览的画面中同时看到多个预览画面、且不同画面分别处于视频链路上不同观测点，可以重复调用该方法设置不同的 view，并针对每个 view 设置不同的观测位置。例如：将视频源设置为摄像头，然后对应两个 view 分别设置 position 为 POST_CAPTURER_ORIGIN 和 POST_CAPTURER，即可在本地视频预览中同时看到没有经过视频前处理的原始画面和已经过视频前处理（美颜、虚拟背景、水印本地预览）的画面。

<a id="api_irtcengine_setuplocalvideo__timing"></a>

### 调用时机 [#调用时机-1]

该方法在加入频道前后均可调用。

<a id="api_irtcengine_setuplocalvideo__restriction"></a>

### 调用限制 [#调用限制-1]

无。

<a id="api_irtcengine_setuplocalvideo__parameters"></a>

### 参数 [#参数-4]

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

本地视频显示属性。详见 [VideoCanvas](/zh-CN/api-reference/rtc/harmonyos/class-videocanvas)。

</Parameter>
</ParameterList>

<a id="api_irtcengine_setuplocalvideo__return_values"></a>

### 返回值 [#返回值-4]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-3]

- [RtcEngine](/zh-CN/api-reference/rtc/harmonyos/rtc-interface-class#class_irtcengine)

<a id="api_irtcengine_setupremotevideo"></a>

<a id="ariaid-title7"></a>

## setupRemoteVideo [#setupremotevideo]

初始化远端用户视图。

<a id="api_irtcengine_setupremotevideo__prototype"></a>

```ts
public abstract setupRemoteVideo(canvas: VideoCanvas): number;
```

<a id="api_irtcengine_setupremotevideo__detailed_desc"></a>

### 详情 [#详情-2]

该方法绑定远端用户和显示视图，并设置远端用户视图在本地显示时的渲染模式和镜像模式，只影响本地用户看到的视频画面。

调用该方法时需要指定远端视频的用户 ID，一般可以在进频道前提前设置好。如果无法在加入频道前得到远端用户的 ID，可以在收到 [onUserJoined](/zh-CN/api-reference/rtc/harmonyos/channel#callback_irtcengineeventhandler_onuserjoined) 回调时调用该方法。

如需解除某个远端用户的绑定视图，可以调用该方法并将 view 设置为空。

离开频道后，SDK 会清除远端用户视图的绑定关系。

:::caution
注意：

- 如果你希望在通话中更新远端用户视图的渲染或镜像模式，请使用 [setRemoteRenderMode](/zh-CN/api-reference/rtc/harmonyos/video/video-rendering#api_irtcengine_setremoterendermode2) 方法。
:::

<a id="api_irtcengine_setupremotevideo__parameters"></a>

### 参数 [#参数-5]

<ParameterList>
<a id="canvas-1"></a>
<Parameter name="canvas">

远端视频显示属性。详见 [VideoCanvas](/zh-CN/api-reference/rtc/harmonyos/class-videocanvas)。

</Parameter>
</ParameterList>

<a id="api_irtcengine_setupremotevideo__return_values"></a>

### 返回值 [#返回值-5]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-4]

- [RtcEngine](/zh-CN/api-reference/rtc/harmonyos/rtc-interface-class#class_irtcengine)

<a id="api_irtcengineex_setupremotevideoex"></a>

<a id="ariaid-title8"></a>

## setupRemoteVideoEx [#setupremotevideoex]

初始化远端用户视图。

<a id="api_irtcengineex_setupremotevideoex__prototype"></a>

```ts
public abstract setupRemoteVideoEx(remote:VideoCanvas, connection:RtcConnection) : number;
```

<a id="api_irtcengineex_setupremotevideoex__detailed_desc"></a>

### 详情 [#详情-3]

该方法绑定远端用户和显示视图，并设置远端用户视图在本地显示时的渲染模式和镜像模式，只影响本地用户看到的视频画面。

调用该方法时需要在 [VideoCanvas](/zh-CN/api-reference/rtc/harmonyos/class-videocanvas) 中指定远端视频的用户 ID，一般可以在进频道前提前设置好。

如果无法在加入频道前得到远端用户的 uid，可以在收到 [onUserJoined](/zh-CN/api-reference/rtc/harmonyos/channel#callback_irtcengineeventhandler_onuserjoined) 回调时调用该方法。如果启用了视频录制功能，视频录制服务会做为一个哑客户端加入频道，因此其他客户端也会收到它的 `onUserJoined` 事件， App 不应给它绑定视图（因为它不会发送视频流）。

如需解除某个远端用户的绑定视图，可以调用该方法并将 view 设置为空。

离开频道后，SDK 会清除远端用户视图的绑定关系。

:::caution
注意：

- 如果你希望在通话中更新远端用户视图的渲染或镜像模式，请使用 [setRemoteRenderModeEx](/zh-CN/api-reference/rtc/harmonyos/video/video-rendering#api_irtcengineex_setremoterendermodeex) 方法。
:::

<a id="api_irtcengineex_setupremotevideoex__parameters"></a>

### 参数 [#参数-6]

<ParameterList>
<a id="canvas-2"></a>
<Parameter name="canvas">

视频画布信息。详见 [VideoCanvas](/zh-CN/api-reference/rtc/harmonyos/class-videocanvas)。

</Parameter>
<a id="connection-1"></a>
<Parameter name="connection">

Connection 信息。详见 [RtcConnection](/zh-CN/api-reference/rtc/harmonyos/class-rtcconnection)。

</Parameter>
</ParameterList>

<a id="api_irtcengineex_setupremotevideoex__return_values"></a>

### 返回值 [#返回值-6]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-5]

- [RtcEngineEx](/zh-CN/api-reference/rtc/harmonyos/rtc-interface-class#class_irtcengineex)
