在推流的过程中会因为某些原因导致设备采集中断。此时如果是麦克风采集中断则远端会无法听见声音;如果是摄像头采集中断,本地预览和远端会看见黑屏。此时需要处理尝试重新创建流
const localstream = BRTC.createStream({ audio: true, video: true }) await localstream.init() const audioTrack = localstream.getAudioTrack() const videoTrack = localstream.getVideoTrack() if (audioTrack.muted) { // 提示麦克风设备有问题 } if (videoTrack.muted) { // 提示摄像头设备有问题 } localstream.on('audio-track-mute', () => { // 提示麦克风设备采集中断,并尝试重新 createStream }) localstream.on('video-track-mute', () => { // 提示摄像头设备采集中断,并尝试重新 createStream })
当需要同时推摄像头和屏幕分享时会创建两个 Client,其中主 Client 负责推摄像头,辅 Client 负责推屏幕分享。其中主 Client 会收到自己的辅 Client 的 stream-added 事件,此时需要忽略这个 stream 不要订阅。
某些电脑有物理按键可以禁用摄像头,若禁用了画面就是一张静止的图片。
建议引导用户检查系统是否授权软件摄像头和麦克风设备权限
设备采集中断
设备采集中断处理
在推流的过程中会因为某些原因导致设备采集中断。此时如果是麦克风采集中断则远端会无法听见声音;如果是摄像头采集中断,本地预览和远端会看见黑屏。此时需要处理尝试重新创建流
屏幕分享 Client 不订阅自己的屏幕分享
当需要同时推摄像头和屏幕分享时会创建两个 Client,其中主 Client 负责推摄像头,辅 Client 负责推屏幕分享。其中主 Client 会收到自己的辅 Client 的 stream-added 事件,此时需要忽略这个 stream 不要订阅。
摄像头出现静止画面
某些电脑有物理按键可以禁用摄像头,若禁用了画面就是一张静止的图片。
设备授权
建议引导用户检查系统是否授权软件摄像头和麦克风设备权限