音视频通话

发起屏幕共享

功能介绍

在视频会议、在线课堂等场景中,可将本端屏幕窗口浏览器标签页画面分享给房间内其他成员观看。

浏览器环境下,调用 CRVideo_StartScreenShare 后由系统弹出采集选择框;用户选定共享源后 SDK 完成采屏、编码与推送。

注意:

须在成功进入房间后,方可发起屏幕共享。

同一房间内,同一时间仅允许一人开启屏幕共享。

共享端请勿在正在共享的屏幕区域内再显示本端「屏幕共享观看组件」,也不要在共享端运行观看端页面,否则可能出现画面无限嵌套。

移动端浏览器不支持屏幕共享

1. 配置共享参数(可选)

开始共享前,可通过 CRVideo_SetScreenShareCfg 设置帧率、码率等;通过 CRVideo_GetScreenShareCfg 查询当前配置。采集源由浏览器 getDisplayMedia 弹窗后用户手动选择,SDK无法预先枚举显示器或窗口列表。

CRVideo_ScreenShareCfg 常用字段:

参数 类型 说明
maxFPS Number 最大帧率
maxKbps Number 最大码率(kbps)
catchRect Object 共享区域,如 { left, top, width, height };不共享区域时可不传或传 null

示例:

CRVideo_SetScreenShareCfg({
  maxFPS: 15,
  maxKbps: 2000,
});

2. 开始共享

CRVideo_StartScreenShare();

调用后浏览器弹出共享源选择;用户确认后开始推流。结果通过 CRVideo_StartScreenShareRslt 回调:

CRVideo_StartScreenShareRslt.callback = function (sdkErr) {
  if (sdkErr == 0) {
    // 开启成功
  } else if (sdkErr == 700) {
    // 房间内已有人在共享
  } else if (sdkErr == 8002) {
    // 用户拒绝或未授予采集权限
  } else if (sdkErr == 8004) {
    // 浏览器不支持 getDisplayMedia API
  }
};

相关 API 请参考:

3. 停止共享

CRVideo_StopScreenShare();

结果通过 CRVideo_StopScreenShareRslt 回调。用户也可在浏览器自带的「停止共享」控件中结束采集,SDK 会同步处理。

CRVideo_StopScreenShareRslt.callback = function (sdkErr) {
  if (sdkErr == 0) {
    // 停止成功
  }
};

相关 API 请参考:

相关文档