# 屏幕共享
功能简介:
在视频会话中为了提高沟通效率,可以将自己的屏幕内容分享给其他参与方观看。还支持在屏幕上进行标注,以及授权其他参与方进行远程控制。当屏幕共享者开启标注后,控件就进入标注模式。此时,房间内所有用户都可以进行标注,并观看他人标注的内容。
使用场景如下:
- 视频会议场景中,屏幕共享可以将讲话者本地的文件、数据、网页、PPT 等画面分享给其他与会人;
- 在线课堂场景中,屏幕共享可以将老师的课件、笔记、讲课内容等画面展示给学生观看。
注意:同一个房间中,不支持多人同时开启屏幕共享。
共享端:
观看端:
# 共享端
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请参考:
- CRVideo_SetScreenShareCfg
- CRVideo_GetScreenShareCfg
- CRVideo_StartScreenShare
- CRVideo_StartScreenShareRslt
相关结构定义请参考 :
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请参考: