You need to enable JavaScript to run this app.
导航

在 RTC 房间共享白板

最近更新时间2023.09.13 18:04:43

首次发布时间2023.06.14 19:02:57

在白板房间中的用户可以进行白板互动。通常你可能还需要将白板互动的内容转发到实时音视频房间中,共享给参与 RTC 互动的用户。
你还可以配合转推直播功能,将白板互动内容从 RTC 房间中发到 CDN,分发给更多的观众。

适用场景

  • 教育场景
    老师和所有学生都进入同一个 RTC 房间中,进行音视频互动。在需要进行白板互动的环节,例如,让学生在白板上进行答题时,老师和选中的学生进入同一个白板房间,进行白板互动。互动的内容作为一路音视频流转发到 RTC 房间中,课堂上的其他学生也可以看到互动内容。
  • 会议场景
    与会者都进入同一个 RTC 房间,进行音视频互动。在需要进行白板互动的环节时,例如,需要在白板上进行推演和讨论时,双方代表进入同一个白板房间进行白板互动。互动内容作为一路音视频流转发到 RTC 房间中,其他与会者也可以观看互动的内容,同时进行讨论。

前提条件

  • 你已经集成了 Web 端互动白板 SDK
  • 你已经集成了 RTC SDK

功能说明

原理说明

白板服务端通过指定路径,以不可见用户的身份加入白板房间,并把渲染好的白板互动内容以视频流的方式推送到指定的实时音视频(RTC)房间内,房间内的成员可以按需对这路白板视频流进行订阅。

图片

实现步骤

图片

你需要在服务端调用 StartWebCast 接口,启动云录屏功能,将白板房间中的互动内容,作为一路音视频转发到 RTC 房间中。

  • 进入同一个白板房间的用户可以进行白板互动。
  • 进入同一个 RTC 房间的用户可以进行音视频互动。
  1. 服务端调用 StartWebCast 开始将白板内容推送到 RTC 房间。参见 开启云录屏
    其中,SourceURL 为 Web 白板客户端的地址。同时,你需要将白板用户 ID,白板房间 ID,appId 和 Token 信息拼接到 url 中,拼接说明和示例如下:
Query Params描述是否必选
type
页面设置:
"" : 带顶导和工具栏。
record: 不带顶导和工具栏。
userId白板用户 ID。不能和已在房间中的用户 ID 相同。
roomId需要共享内容的白板房间 ID。
env固定项,填 online
appIdRTC 应用识别 ID。你的 RTC 和白板应用可以使用同一个 appId。
通过控制台获取。
tokenRTC 服务鉴权 token,可以通过控制台获取。
isByte固定项,填 true

示例:
https://whiteboard.demo.volcengine.com/?userId=usera&roomId=room1&env=online&appId=630123412341234123412341&token=0016123412341234123412341234123412341234=&isByte=true&type=record
2. RTC 房间中的用户在监听到 onUserPublishStream 后,调用 subscribe 订阅这路音视频流。
3. 参与互动的用户进入白板房间,参见构建基础白板应用
4. 互动结束后,服务端掉用 StopWebCast 停止将白板内容推送到 RTC 房间。

常见问题

  1. Q: 通过云录屏功能将白板内容转发到 RTC 房间是否会产生额外费用,如何计费?
    A: 使用云录屏时,除原有的音视频通信费用以外,会额外产生云录屏费用。按照不同分辨率,按时长计费,详见 云录屏产品计费
  2. Q: 除了云录屏,是否还有其他方案可以实现将白板流共享到 RTC 房间?
    A: 我们推荐使用本文介绍的方法,即通过云录屏功能,实现将白板流共享到 RTC 房间。除此之外,你也可以通过以下方法实现:
    所有参与音视频通话的用户也同时加入同一个白板房间。同时将不进行互动的用户的白板编辑权限设置为只读,调用 setWritable 设置为 False,将本端设置为只读用户。
  3. Q: 白板应用的 appId 和 RTC 应用的 appId 可以相同吗?
    A: 白板和 RTC 应用可以使用同一个 appId 和同一套 Token 生成机制。注意白板房间 roomID 不能与 RTC 房间 roomID 相同。以免影响白板房间和 RTC 房间内回调提醒相互影响。建议为白板房间名加上 whiteboard_ 前缀。同时,白板用户 userID 也不能与 RTC userID 相同。