通话或直播过程中,Web 发送端突然无声或黑屏。查阅日志发现是由音频或视频轨道停止 (Audio Track Ended/Video Track Ended) 导致的。
轨道停止很可能是由于设备松动、接触不良或拔出。
根据你使用的 Web SDK 版本查看解决方案。
Web SDK 3.x 不支持热插拔,设备拔出再插入后必须要重新创建流。参考以下步骤在集成中处理音频或视频轨道停止导致的无声或黑屏:
stream.on("audioTrackEnded")
和 stream.on("videoTrackEnded")
事件。stream.on("audioTrackEnded")
或 stream.on("videoTrackEnded")
事件后,提示终端用户确认设备是否正常工作,或重新插入设备。unpublish
方法取消发布音视频流。createStream
方法重新创建音视频流对象。Web SDK 4.x 支持热插拔。参考以下步骤在集成中处理音频或视频轨道停止导致的无声或黑屏:
localTrack.on("track-ended")
事件。localTrack.on("track-ended")
事件后,提示终端用户确认设备是否正常工作,或重新插入设备。AgoraRTC.onMicrophoneChanged
或 AgoraRTC.onCameraChanged
获取设备状态。当设备插入时,调用 MicrophoneAudioTrack.setDevice
或 CameraVideoTrack.setDevice
切换到新插入的设备。