屏幕共享标注
功能介绍
屏幕共享进行中,可开启房间内标注:在共享画面上绘制笔迹,数据由 SDK 同步,共享者与观看者均能看到。标注绘制在屏幕共享 UI 组件自带的 canvas 层上,用户在该层按下鼠标拖动即可画线,无需业务层自行封装发送接口。
开启标注后,房间内成员在已创建且允许标注的 CRVideo_ScreenShareObj 上均可参与绘制(是否允许他人标注可由服务端/会议侧策略控制)。
注意:
须在成功进入房间后,方可使用屏幕共享标注;且须房间内已有人开启屏幕共享。
须已创建屏幕共享 UI 组件并完成 setVideo,再通过 setMark 开启本端绘制能力。
1. 开启与停止标注
CRVideo_StartScreenMark();
CRVideo_StopScreenMark();
结果分别通过 CRVideo_StartScreenMarkRslt、CRVideo_StopScreenMarkRslt 回调。停止标注时 SDK 会清空房间内标注数据。
CRVideo_StartScreenMarkRslt.callback = function (sdkErr) {
if (sdkErr == 0) {
// 标注模式已开启
}
};
CRVideo_StopScreenMarkRslt.callback = function (sdkErr) {
if (sdkErr == 0) {
// 标注模式已停止
}
};
房间内标注状态变化通知:
CRVideo_NotifyScreenMarkStarted.callback = function (UID) {
// UID:开启标注的操作者
};
CRVideo_NotifyScreenMarkStopped.callback = function (UID) {
// UID:停止标注的操作者
};
相关 API 请参考:
- CRVideo_StartScreenMark
- CRVideo_StopScreenMark
- CRVideo_StartScreenMarkRslt
- CRVideo_StopScreenMarkRslt
- CRVideo_NotifyScreenMarkStarted
- CRVideo_NotifyScreenMarkStopped
2. 配置本端绘制
在屏幕共享 UI 组件上调用 setMark,传入 CRVideo_MarkOptions:
| 参数 | 类型 | 说明 |
|---|---|---|
| allowMark | Boolean | 是否允许在本组件上绘制,默认 false |
| type | Number | 画笔类型,默认 1(铅笔) |
| strokeStyle | String | 颜色,如 "#ff0000" |
| lineWidth | Number | 线宽(px) |
| cursor | String | 鼠标样式,如自定义画笔图标 |
示例:标注模式开启后,允许用户在观看组件上绘制:
screenShareObj.setMark({
allowMark: true,
type: 1,
strokeStyle: "#ff0000",
lineWidth: 3,
});
标注模式开启后,SDK 会显示组件内 canvas 层;在 allowMark 为 true 的组件上按住鼠标拖动即可画线,松开后自动同步至房间内其他端。
若业务层调整了屏幕共享组件外层容器尺寸,可在尺寸变化后调用组件的 markResize(),使标注层重新适配容器。
相关 API 请参考: