更新时间:2023-10-26 GMT+08:00
分享

屏幕分享

功能描述

屏幕共享用于在音视频会议中,把一个与会者的屏幕内容,以视频的方式分享给其他与会者。

接口调用流程

实现屏幕共享

  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);
        }
    }

相关文档