本文介绍在使用 Web SDK 实现屏幕共享的场景中,如何在发布的屏幕共享流和摄像头采集的视频流之间进行切换。
屏幕共享流和摄像头采集的视频流互相切换的方法是一样的,下面的介绍均以从屏幕共享流切换到摄像头视频流为例。
发送端创建两个 Client 对象,对应两路流:屏幕共享流和本地摄像头视频流。具体的实现方法请参考同时共享屏幕和开启视频。
在需要从屏幕共享流切换到摄像头视频流时,接收端选择订阅摄像头视频流即可。
如果你的应用场景允许同时创建两路流,我们推荐使用这种方案。
Client.unpublish
和 Stream.close
取消发布并关闭当前屏幕共享流。AgoraRTC.createStream
新建本地视频流。Stream.init
和 Stream.publish
初始化并发布视频流。方案二的兼容性和稳定性较好,缺点是无法动态切换,切换时间较长,可能需要一到两秒的时间。
调用 Stream.replaceTrack
方法将本地音视频流中的视频轨道替换为屏幕共享流。
方案三可以实现动态切换且切换速度快,但是 replaceTrack
方法限制较多: