
# 视频管理
 #### createRenderer
```
public abstract SurfaceView createRenderer(Context context)
```
【**功能说明**】
创建渲染视图。
【**请求参数**】
context：上下文。
【**返回参数**】
创建的渲染视图。
 #### updateLocalRenderMode
```
public abstract int updateLocalRenderMode(HRTCVideoDisplayMode displayMode, HRTCVideoMirrorType mirrorMode) = 0;
```
【**功能说明**】
设置本地窗口显示模式，镜像模式。
【**请求参数**】
- displayMode：显示模式，具体请参见[HRTCVideoDisplayMode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0037.html#rtc_05_0037__section3843123516428)。
- mirrorMode：镜像模式，具体请参见[HRTCVideoMirrorType](https://support.huaweicloud.com/csdk-rtc/rtc_05_0128.html#rtc_05_0128__zh-cn_topic_0277015533_section6255102815113)。
【**返回参数**】
- 0：成功。
- \>0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
 #### setupLocalView
```
public abstract int setupLocalView(SurfaceView view);
public abstract int setupLocalView(SurfaceView view, HRTCVideoDisplayMode viewMode);
```
【**功能说明**】
设置本地窗口。
【**请求参数** 】
- view：窗口视图。
- displayMode：显示模式，具体请参见[HRTCVideoDisplayMode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0037.html#rtc_05_0037__section3843123516428)。不设置则默认为裁剪模式。
 
【**返回参数** 】
- 0：成功。
- \>0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
 #### pushLocalVideo
```
public abstract int pushLocalVideo(boolean push);
```
【**功能说明**】
设置是否发送本地视频流。
【**请求参数**】
push：true表示发送，false表示不发送。
【**返回参数** 】
- 0：成功。
- \>0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
 #### setVideoEncoderConfig
```
public abstract int setVideoEncoderConfig(int totalBitRate, List<HRTCVideoEncParam> encoderParams);
public abstract int setVideoEncoderConfig(HRTCVideoEncParam encoderParam);
```
【**功能说明**】
设置视频编码参数。具体请参见全平台[setVideoEncoderConfig](https://support.huaweicloud.com/csdk-rtc/rtc_05_0101.html#rtc_05_0101__zh-cn_topic_0000001113689814_section3515736161317)。
【**请求参数** 】
- totalBitRate：视频最大码率，默认值4096。
- encoderParams：视频编码参数列表，具体请参见[HRTCVideoEncParam](https://support.huaweicloud.com/csdk-rtc/rtc_05_0037.html#rtc_05_0037__section684155125515)。
- encoderParam：视频编码参数，具体请参见[HRTCVideoEncParam](https://support.huaweicloud.com/csdk-rtc/rtc_05_0037.html#rtc_05_0037__section684155125515)。
 
【**返回参数** 】
- 0：成功。
- \>0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
  ![](https://support.huaweicloud.com/csdk-rtc/public_sys-resources/caution_3.0-zh-cn.png)
  - 安卓移动端采集帧率限制20帧，建议设置的编码帧率不要超过20帧
    
 
 #### setNonStandardVideoEncoder
```
public abstract int setNonStandardVideoEncoder(List<HRTCVideoEncParam> encParams);
```
【**功能说明**】
设置非标视频编码参数。参数列表，第一个为大流（必填），第二个为小流（选填）。
【**请求参数**】
encoderParams：视频编码参数列表，具体请参见[HRTCVideoEncParam](https://support.huaweicloud.com/csdk-rtc/rtc_05_0037.html#rtc_05_0037__section684155125515)。
【**返回参数** 】
- 0：成功。
- \>0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
 #### setRemoteVideoAdjustResolution
```
public abstract int setRemoteVideoAdjustResolution(boolean enable);
```
【**功能说明**】
设置是否开启远端流分辨率自适应。默认开启自适应。
【**请求参数**】
enable：是否开启分辨率自适应。默认开启。
【**返回参数** 】
- 0：成功。
- \>0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
 #### startLocalPreview
```
public abstract int startLocalPreview();
```
【**功能说明**】
开始本地预览。
【**请求参数**】
无
【**返回参数** 】
- 0：成功。
- \>0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
![](https://support.huaweicloud.com/csdk-rtc/public_sys-resources/caution_3.0-zh-cn.png)
- 该接口限制在房间外调用，在房间内设置不生效，需要调用stopLocalPreview关闭预览，否则将一直处于预览状态。
- 在房间内预览：可调用[setupLocalView]设置有效view开启预览，设置为null表示关闭预览，不需要调用stopLocalPreview。
- 在房间外预览：先调用[setupLocalView]设置有效view，再调用startLocalPreview开启预览；关闭时，先调用[setupLocalView]设置为null，再调用stopLocalPreview关闭预览。
 
 #### stopLocalPreview
```
public abstract int stopLocalPreview();
```
【**功能说明**】
停止本地预览。
【**请求参数**】
无
【**返回参数** 】
- 0：成功。
- \>0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
![](https://support.huaweicloud.com/csdk-rtc/public_sys-resources/caution_3.0-zh-cn.png)
如果调用了[startLocalPreview]，需调用stopLocalPreview关闭预览，否则将一直处于预览状态。该接口限制在房间外调用，在房间内设置不生效。
 #### startRemoteStreamView
```
public abstract int startRemoteStreamView(String userId, SurfaceView view, HRTCStreamType streamType, boolean disableAdjustRes);
```
【**功能说明**】
开始订阅远端视频流，并设置远端窗口。
【请求参数】
- userId：用户ID。
- view：远端窗口视图。
- streamType：流类型，具体请参见[HRTCStreamType](https://support.huaweicloud.com/csdk-rtc/rtc_05_0037.html#rtc_05_0037__section5977140134210)。
- disableAdjustRes：禁用分辨率自适应的标志。
 
【**返回参数**】
- 0：成功。
- \>0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
 #### stopRemoteStreamView
```
public abstract int stopRemoteStreamView(String userId);
```
【**功能说明**】
停止订阅远端视频流，并关闭远端窗口。
【**请求参数**】
userId：用户ID。
【**返回参数** 】
- 0：成功。
- \>0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
 #### setupRemoteView
```
public abstract int setupRemoteView(String userId, SurfaceView view);
```
【**功能说明**】
设置远端流视图，该接口不影响收流。
【**请求参数**】
- userId：远端用户的唯一标识。
- view：远端窗口视图，view为null时，解除窗口绑定。
【**返回参数** 】
- 0：成功。
- \> 0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
 #### updateRemoteRenderMode
```
public abstract int updateRemoteRenderMode(String userId, HRTCVideoDisplayMode displayMode, HRTCVideoMirrorType mirrorMode);
```
【**功能说明**】
设置远端窗口渲染模式。
【**请求参数** 】
- userId：用户ID。
- displayMode：渲染模式，具体请参见[HRTCVideoDisplayMode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0037.html#rtc_05_0037__section3843123516428)。
- mirrorMode：镜像模式，具体请参见[HRTCVideoMirrorType](https://support.huaweicloud.com/csdk-rtc/rtc_05_0128.html#rtc_05_0128__zh-cn_topic_0277015533_section6255102815113) 。
 
【**返回参数** 】
- 0：成功。
- \>0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
 #### pullRemoteVideo
```
public abstract int pullRemoteVideo(String userId, boolean pull);
```
【**功能说明**】
开启、关闭指定远端用户的视频流。
【**请求参数**】
- userId：远端用户的userId，唯一标识。
- pull：true表示开始接收，false表示关闭接收。
【**返回参数**】
- 0：成功。
- \> 0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
 #### pullAllRemoteVideo
```
public abstract int pullAllRemoteVideo(boolean pull);
```
【**功能说明**】
批量开启、关闭当前所有远端用户的视频流。
【**请求参数**】
pull：true表示开启接收，false表示关闭接收， 默认开启接收。
【**返回参数**】
- 0：成功。
- \> 0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
![](https://support.huaweicloud.com/csdk-rtc/public_sys-resources/caution_3.0-zh-cn.png)
开启本地镜像后，本地视频窗口看到的是镜像视图，但不影响远端查看自己的视图。
 #### setVideoEncoderMirror
```
public abstract int setVideoEncoderMirror(HRTCVideoMirrorType mirrorType);
```
【**功能说明**】
设置视频编码镜像模式。
【**请求参数**】
mirrorType：镜像模式，是否开启镜像，具体请参见[HRTCVideoMirrorType](https://support.huaweicloud.com/csdk-rtc/rtc_05_0037.html#rtc_05_0037__section8288155264418)，默认值false。
【**返回参数**】
- 0：成功。
- \> 0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
![](https://support.huaweicloud.com/csdk-rtc/public_sys-resources/caution_3.0-zh-cn.png)
开启镜像后，仅改变编码发送给远端用户的视图，不影响自己看到的本地视频窗口。
 #### enableLocalVideo
```
public abstract int enableLocalVideo(boolean enabled);
```
【**功能说明**】
设置是否开启摄像头采集视频。
【**请求参数**】
enabled：true表示开启，false表示关闭。
【**返回参数**】
- 0：成功。
- \> 0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
![](https://support.huaweicloud.com/csdk-rtc/public_sys-resources/caution_3.0-zh-cn.png)
默认开启，本端调用时，远端用户会触发[onRemoteVideoStateChangedNotify](https://support.huaweicloud.com/csdk-rtc/rtc_05_0025.html#rtc_05_0025__section175631614168)远端视频流状态变化回调。
 #### enableVideoSuperResolution
```
public abstract int enableVideoSuperResolution(boolean enabled);
```
【**功能说明**】
设置是否开启视频超分 。
【**请求参数**】
enabled：true表示开启，false表示关闭。
【**返回参数**】
- 0：成功。
- \> 0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
 #### enableSmallVideoStream
```
public abstract int enableSmallVideoStream(boolean enable, HRTCVideoEncParam encoderParam);
```
【**功能说明**】
大小流模式设置是否开启小流，并设置编码参数。小流选择性开启。
【**请求参数** 】
- enable：是否开启小流。
- encoderParam：视频编码参数。包括流类型、宽、高、码率、帧率等。具体请参见[HRTCVideoEncParam](https://support.huaweicloud.com/csdk-rtc/rtc_05_0037.html#rtc_05_0037__section684155125515)。
 
【**返回参数** 】
- 0：成功。
- \>0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
 #### setPriorRemoteVideoStreamType
```
public abstract int setPriorRemoteVideoStreamType(HRTCVideoStreamType type);
```
【**功能说明**】
大小流模式，设置所有订阅的远端视频流类型。默认订阅大流，优先应用setRemoteVideoStreamType接口设置的用户流类型。
【**请求参数**】
type：订阅的视频流类型，分为大流和小流，具体请参见[HRTCVideoStreamType](https://support.huaweicloud.com/csdk-rtc/rtc_05_0037.html#rtc_05_0037__section3601657183414)。
【**返回参数** 】
- 0：成功。
- \>0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
 #### setRemoteVideoStreamType
```
public abstract int setRemoteVideoStreamType(String userId, HRTCVideoStreamType type);
```
【**功能说明**】
大小流模式，设置指定订阅的远端视频流类型。
【**请求参数**】
- userId：远端用户唯一标识。
- type：订阅的视频流类型，分为大流和小流，具体请参见[HRTCVideoStreamType](https://support.huaweicloud.com/csdk-rtc/rtc_05_0037.html#rtc_05_0037__section3601657183414)。
 
 #### startPublishStream
```
public abstract int startPublishStream(String taskId, List<String> urlList, HRTCTranscodeConfig transcodeConfig);
```
【**功能说明**】
开始旁路推流。
【**请求参数**】
- taskId：任务id，业务自行定义，保证唯一。
- urlList：url数组。参考[HRTCRtmpUrlList](https://support.huaweicloud.com/csdk-rtc/rtc_05_0128.html#rtc_05_0128__section1811071814116)
- transcodeConfig：用户id数组和其他参数，具体请参见[HRTCTranscodeConfig](https://support.huaweicloud.com/csdk-rtc/rtc_05_0128.html#rtc_05_0128__section061253104915)。
【**返回参数**】
- 0：成功。
- \> 0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
 #### updateTransCoding
```
public abstract int updateTransCoding(String taskId, HRTCTranscodeConfig transcodeConfig);
```
【**功能说明**】
更新旁路推流。
【**请求参数**】
- taskId：任务id，业务自行定义，保证唯一。
- transcodeConfig：用户id数组和其他参数，具体请参见[HRTCTranscodeConfig](https://support.huaweicloud.com/csdk-rtc/rtc_05_0128.html#rtc_05_0128__section061253104915)。
【**返回参数**】
- 0：成功。
- \> 0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
 #### stopPublishStream
```
virtual int stopPublishStream(const char* taskId)
```
【**功能说明**】
停止旁路推流。
【**请求参数**】
taskId：任务id，支持自定义，需保证唯一性。
【**返回参数**】
- 0：成功。
- \> 0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
 #### startAllRemoteView
```
public abstract int startAllRemoteView(int counts, List<HRTCVideoRemoteView> viewInfoList);
```
【**功能说明**】
批量设置远端流视图。
【**请求参数**】
- counts：必选，number类型，为数组的长度；如果设置为0，则取消所有远端流视图，大于0，则取消没选中用户的远端视图。
- viewInfoList：订阅的视图信息，主要包括该视图的句柄、流类型、用户ID、是否自适应等，具体请参见[HRTCVideoRemoteView](https://support.huaweicloud.com/csdk-rtc/rtc_05_0037.html#rtc_05_0037__zh-cn_topic_0277015533_section20548163352015)。
【**返回参数** 】
- 0：成功。
- \>0：失败。具体请参见[客户端错误码](https://support.huaweicloud.com/csdk-rtc/rtc_05_0035.html)。
 
