
# 屏幕分享
#### 功能描述
屏幕共享用于在音视频会议中，把一个与会者的屏幕内容，以视频的方式分享给其他与会者。
 #### 接口调用流程
![](https://support.huaweicloud.com/bestpractice-rtc/zh-cn_image_0000001226278117.png)
#### 实现屏幕共享
1. **加入房间**
   参考[接口调用流程]中加入房间的时序图步骤加入房间。
   
2. **共享桌面**
   加入房间后可以调用setAuxiliaryVideoEncoderConfig设置编码参数，其中HRTCVideoAuxiliarEncParam需要传入宽高、帧率、码率，然后调用startScreenShare开始共享。
   ```
   public void startScreenShare(){
           // 设置编码参数
   mHwRtcEngine.setAuxiliaryVideoEncoderConfig(new HRTCVideoAuxiliarEncParam(widthInt, heightInt, framerateInt, bitrateInt));
   // 开始共享
   mHwRtcEngine.startScreenShare();
   }
   ```
   
3. **共享程序**
   暂不支持
   
4. **接收远端用户的共享流**
   收到远端用户开启共享流回调onUserAuxiliaryStreamAvailable后，可以调用startRemoteAuxiliaryStreamView来设置远端用户的共享流的窗口句柄并开始选看。
   还可以调用updateRemoteAuxiliaryStreamRenderMode设置窗口显示共享流的方式。
   ```
   @Override
   public void onUserAuxiliaryStreamAvailable(String roomId, String userId, boolean available){
       if (available) {
           // 设置远端用户视图
   mHwRtcEngine.startRemoteAuxiliaryStreamView(userId, surface);
   // 设置远端用户视图显示模式
           mHwRtcEngine.updateRemoteAuxiliaryStreamRenderMode(userId, HRTCEnums.HRTCVideoDisplayMode.HRTC_VIDEO_DISPLAY_MODE_HIDDEN, HRTCEnums.HRTCVideoMirrorType.HRTC_VIDEO_MIRROR_TYPE_DISABLE);    
       }
   }
   ```
   
5. **停止屏幕共享**
   屏幕共享结束时，可以调用stopScreenShare停止屏幕共享。
   ```
   public void stopScreenShare() {
       // 停止屏幕共享
       mHwRtcEngine.stopScreenShare();
   }
   ```
   
6. **停止接收远端用户的屏幕共享流**
   收到onUserAuxiliaryStreamAvailable消息后，如果选看的远端屏幕共享流不可用，或者收到远端用户下线通知onUserOffline，则接收端必须调用stopRemoteAuxiliaryStreamView关闭共享流窗口视图。
   如果接收端想主动停止接收远端用户的共享流，也需要调用stopRemoteAuxiliaryStreamView。
   ```
   @Override
   public void onUserAuxiliaryStreamAvailable(String roomId, String userId, boolean available){
       if (!available) {
           // 关闭共享流窗口视图
   mHwRtcEngine.stopRemoteAuxiliaryStreamView(userId);
       }
   }
   ```
   
 
#### API参考
[startScreenShare](https://support.huaweicloud.com/csdk-rtc/rtc_05_0017.html#section0)
[stopScreenShare](https://support.huaweicloud.com/csdk-rtc/rtc_05_0017.html#section1)
[startRemoteAuxiliaryStreamView](https://support.huaweicloud.com/csdk-rtc/rtc_05_0018.html#section1)
[stopRemoteAuxiliaryStreamView](https://support.huaweicloud.com/csdk-rtc/rtc_05_0018.html#section2)
