# 屏幕共享

功能简介:
在视频会话中为了提高沟通效率,可以将自己的屏幕内容分享给其他参与方观看。还支持在屏幕上进行标注,以及授权其他参与方进行远程控制。当屏幕共享者开启标注后,控件就进入标注模式。此时,房间内所有用户都可以进行标注,并观看他人标注的内容。
使用场景如下:

  • 视频会议场景中,屏幕共享可以将讲话者本地的文件、数据、网页、PPT 等画面分享给其他与会人;
  • 在线课堂场景中,屏幕共享可以将老师的课件、笔记、讲课内容等画面展示给学生观看。

注意:同一个房间中,不支持多人同时开启屏幕共享。


共享端:

  1. 开始共享
  2. 开启标注
  3. 停止标注
  4. 停止共享

观看端:

  1. 创建屏幕共享显示控件
  2. 观看共享的屏幕
  3. 开启、停止标注通知
  4. 屏幕共享停止通知

# 共享端

1.开始共享

使用接口启动共享,出现共享内容显示组件后,用组件上的功能开始标注和结束共享。

  • 接口调用:
/*
*开启屏幕共享分为2步:
*/
// 1.设置屏幕共享参数
var jsonCfg = {"maxFPS":8, "maxKbps":800};
CRVideo_SetScreenShareCfg(jsonCfg);

//2.开启屏幕共享
CRVideo_StartScreenShare();
  • 回调通知:
// 主动开启屏幕共享的结果
CRVideo_StartScreenShareRslt.callback=function(sdkErr){
     if(sdkErr == CRVideo_NOERR){ //主动开启共享成功
     }else{
         console.log("主动开启共享失败,错误码:" +sdkErr);
     }
}

相关API请参考:

相关结构定义请参考 :

2.开启标注

注意:只有主动开启屏幕共享的用户,才可以开启标注功能。观看他人屏幕的用户不能开启标注。

  • 接口调用:
//开启标注
CRVideo_StartScreenMark();

  • 回调通知:
//开启标注的结果
CRVideo_StartScreenMarkRslt.callback = function(sdkErr){
     if(sdkErr == CRVideo_NOERR){ //开启标注成功
     }else{
         console.log("开启标注失败,错误码:" +sdkErr);
     }
}

相关API请参考:

3.停止标注

注意:只有主动开启屏幕共享的用户,才可以停止标注功能。观看他人屏幕的用户不能停止标注。

  • 接口调用:
//停止标注
CRVideo_StopScreenMark();

  • 回调通知:
//停止标注的结果
CRVideo_StopScreenMarkRslt.callback = function(sdkErr){
    if(sdkErr == CRVideo_NOERR){ //停止标注成功
     }else{
         console.log("停止标注失败,错误码:" +sdkErr);
     }
}

相关API请参考:

4.停止共享

  • 接口调用:
//主动停止屏幕共享
CRVideo_StopScreenShare()
  • 回调通知:
//主动停止屏幕共享的结果
CRVideo_StopScreenShareRslt.callback=function(sdkErr){
    if(sdkErr == CRVideo_NOERR){ //主动停止共享成功
     }else{
         console.log("主动停止共享失败,错误码:" +sdkErr);
     }
}

相关API请参考:

观看端

1.创建屏幕共享显示控件

var g_screenShareObj =  null;   //声明屏幕共享控件变量

//创建屏幕共享控件对象
if(g_screenShareObj == null) {
    g_screenShareObj = CRVideo_CreatScreenShareObj();
    g_screenShareObj.id("screenShareObj");
    //为控件添加父元素div(例如:其id为screenShareContainer), 
    //后面需要布局 、显示、隐藏屏幕共享控件时直接操作此父元素div
    $("#screenShareContainer").append(g_screenShareObj.handler());
}

2.观看共享的屏幕

  • 回调通知:
//收到他人开启了屏幕共享的通知,此时可以观看他人的屏幕
CRVideo_NotifyScreenShareStarted.callback=function(){
    //修改布局,把屏幕共享控件放入界面,即可观看他人的屏幕。示例代码如下:
    $("#screenShareContainer").css({"display":"block",
                                    "left":"0px",
                                    "top":"0px",
                                    "width":"544px",
                                    "height":"306px",
                                    "overflow":"hidden"});
    g_screenShareObj.width(544);
    g_screenShareObj.height(306);
}

相关API请参考:

3.开启、停止标注通知

  • 回调通知:
//收到共享端已开启标注的通知
CRVideo_NotifyScreenMarkStarted.callback = function(){

}

//收到共享端已停止标注的通知
CRVideo_NotifyScreenMarkStopped.callback = function(){
    
}

相关API请参考:

4.屏幕共享停止通知

  • 回调通知:

//收到他人停止了屏幕共享的通知,即停止观看(此时可以隐藏屏幕共享控件)
CRVideo_NotifyScreenShareStopped.callback=function(){
    //隐藏屏幕共享控件。 示例代码:
    $("#screenShareContainer").hide();
}

相关API请参考: