
# 屏幕共享
 #### getScreenShareSources
```
virtual IHRTCScreenShareSourceList* getScreenShareSources(HRTCScreenShareIconType type)
```
【**功能说明**】
获取屏幕可共享对象列表。
【**请求参数**】
type：屏幕捕获图像类型，具体请参见[HRTCScreenShareIconType](https://support.huaweicloud.com/csdk-rtc/rtc_05_0128.html#rtc_05_0128__zh-cn_topic_0277015533_section1558380207)。
【**返回参数**】
共享屏幕窗口对象列表，具体请参见[共享屏幕资源管理](https://support.huaweicloud.com/csdk-rtc/rtc_05_0118.html)。
 #### setScreenShareTarget
```
virtual int setScreenShareTarget(HRTCScreenShareSourceInfo* info, HRTCSrceenCaptureOptionalInfo* optionalInfo)
```
【**功能说明**】
选择屏幕共享对象。
【**请求参数**】
- info：共享对象信息，主要为采集源ID、名称等，具体请参见[HRTCScreenShareSourceInfo](https://support.huaweicloud.com/csdk-rtc/rtc_05_0128.html#rtc_05_0128__zh-cn_topic_0277015533_section913616401206)。
- optionalInfo：其他共享对象信息，如是否禁止鼠标采集、可选的共享区域等，具体请参见[HRTCSrceenCaptureOptionalInfo](https://support.huaweicloud.com/csdk-rtc/rtc_05_0128.html#rtc_05_0128__zh-cn_topic_0277015533_section454514411207)。
【**返回参数**】
- 0：方法调用成功。
- \> 0：方法调用失败。具体请参见[HRTCErrorCode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0125.html)。
![](https://support.huaweicloud.com/csdk-rtc/public_sys-resources/caution_3.0-zh-cn.png)
- 辅流的分辨率默认最大支持1080P，如果小于1080P，以实际分辨率为准。
- 区域共享分辨率以optionalInfo中定义的矩形（Rect）大小为准，若不设置（全部设为0），则默认使用1920\*1080。
- 区域共享时自定义分辨率的矩形（Rect）范围限制为最小96\*92，最大4096\*2160，超出范围设置无效。
 
 #### startScreenShare
```
virtual int startScreenShare()
```
【**功能说明**】
开启屏幕共享。开启屏幕共享前需要调用[getScreenShareSources]和[setScreenShareTarget]接口获取和选择共享屏幕（窗口）对象。
【**返回参数** 】
- 0：方法调用成功。
- \> 0：方法调用失败。具体请参见[HRTCErrorCode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0125.html)。
 
![](https://support.huaweicloud.com/csdk-rtc/public_sys-resources/caution_3.0-zh-cn.png)
- 目前可支持多路辅流共享，若需开启多辅流，请[提交工单](https://console.huaweicloud.com/ticket/#/ticketindex/createIndex)联系技术支持处理。
- 共享成功后会触发onScreenShareStarted回调。
- 远端会收到[onUserAuxiliaryStreamAvailable](https://support.huaweicloud.com/csdk-rtc/rtc_05_0107.html#rtc_05_0107__zh-cn_topic_0277015530_section104831644105410)通知，可据此发起辅流选看。
 
 #### stopScreenShare
```
virtual int stopScreenShare()
```
【**功能说明**】
停止屏幕共享。
【**返回参数** 】
- 0：方法调用成功。
- \> 0：方法调用失败。具体请参见[HRTCErrorCode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0125.html)。
 
![](https://support.huaweicloud.com/csdk-rtc/public_sys-resources/caution_3.0-zh-cn.png)
- 停止成功后会触发[onScreenShareStopped](https://support.huaweicloud.com/csdk-rtc/rtc_05_0107.html#rtc_05_0107__zh-cn_topic_0277015530_section14170162745111)回调。
- 远端会收到[onUserAuxiliaryStreamAvailable](https://support.huaweicloud.com/csdk-rtc/rtc_05_0107.html#rtc_05_0107__zh-cn_topic_0277015530_section104831644105410)通知，可据此停止辅流选看。
 
 #### addHiddenShareWindow
```
virtual int addHiddenShareWindow(view_t view)
```
【**功能说明**】
将指定窗口加入屏幕共享排除列表，屏幕共享时，在排除列表中的窗口将不会被共享出去。
屏幕共享前后均可调用。
【**请求参数**】
view：窗口句柄。
【**返回参数**】
- 0：方法调用成功。
- \> 0：方法调用失败。具体请参见[HRTCErrorCode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0125.html)。
 
![](https://support.huaweicloud.com/csdk-rtc/public_sys-resources/caution_3.0-zh-cn.png)
- 添加过滤窗口，窗口关闭后，不会自动移除该窗口句柄。
- 该功能仅在屏幕共享时生效，在窗口共享时不生效。
- 退出房间不会自动清空过滤窗口列表。
- windows7系统，通过DwmIsCompositionEnabled查询为关闭的场景下不可用。
- windows 10系统1607以前的版本，通过GetProcessDpiAwareness查询为PROCESS_DPI_UNAWARE或者PROCESS_SYSTEM_DPI_AWARE，则在系统dpi非100%场景不可用。建议应用以PROCESS_PER_MONITOR_DPI_AWARE模式使用。
 
 #### deleteHiddenShareWindow
```
virtual int deleteHiddenShareWindow(view_t view)
```
【**功能说明**】
将指定窗口从屏幕共享排除列表中移除。
屏幕共享前后均可调用。
【**请求参数**】
view：窗口句柄。
【**返回参数**】
- 0：方法调用成功。
- \> 0：方法调用失败。具体请参见[HRTCErrorCode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0125.html)。
 
 #### removeAllHiddenShareWindow
```
virtual int removeAllHiddenShareWindow()
```
【**功能说明**】
将所有窗口从屏幕共享排除列表中移除。
屏幕共享前后均可移除。
【**请求参数**】
无
【**返回参数**】
- 0：方法调用成功。
- \> 0：方法调用失败。具体请参见[HRTCErrorCode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0125.html)。
 
 #### getScreenShareSources
```
virtual IHRTCScreenShareSourceList*  getScreenShareSources(const HRTCSize &thumbnailSize, const HRTCSize &iconSize)
```
【**功能说明**】
获取屏幕可共享对象列表，包含缩略图。
【**请求参数**】
thumbnailSize：具体请参见[HRTCSize](https://support.huaweicloud.com/csdk-rtc/rtc_05_0128.html#rtc_05_0128__section13763241114914)，当前只支持640\*360， 传0\*0时不需要缩略图。
iconSize：具体请参见[HRTCSize](https://support.huaweicloud.com/csdk-rtc/rtc_05_0128.html#rtc_05_0128__section13763241114914)，当前不支持。
【**返回参数**】
- 0：方法调用成功。
- \> 0：方法调用失败。具体请参见[HRTCErrorCode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0125.html)。
 
#### setVideoEncodeResolutionMode
```
virtual int setVideoEncodeResolutionMode(HRTCVideoEncodeResolutionMode resolutionMode)
```
【**功能说明**】
设置视频编码分辨率比例模式。
【**请求参数**】
resolutionMode：视频编码分辨率比例模式。具体请参见[HRTCVideoEncodeResolutionMode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0128.html#rtc_05_0128__section1485121931216)。
【**返回参数**】
- 0：方法调用成功。
- \> 0：方法调用失败。具体请参见[HRTCErrorCode](https://support.huaweicloud.com/csdk-rtc/rtc_05_0125.html)。
![](https://support.huaweicloud.com/csdk-rtc/public_sys-resources/caution_3.0-zh-cn.png)
使用该接口设置辅流编码参数，目前策略会根据获取的区域宽高比对设置的宽高进行调整，使用户设置的宽高比与获取的宽高比保持一致，因此，用户实际收流分辨率与设置分辨率有可能不同。
