WebRTC:如何确定远程用户是否已禁用其视频轨道?

big*_*ato 3 webrtc

我有一个用于禁用本地视频轨道的按钮:

button.onclick = function(){
    mediaStream.getVideoTracks()[0].enabled =
     !(mediaStream.getVideoTracks()[0].enabled);
}
Run Code Online (Sandbox Code Playgroud)

我希望能够在远程端检测到这一点,以便我可以使用用户友好的图像切换视图,而不是显示黑屏.

是否有任何事件被触发或者远程用户可以在其本地流对象上检查的流的任何属性,这些属性指示另一个用户关闭了他们的视频?

Aja*_*jay 5

不,没有直接的方法来识别远程视频静音状态.
您需要通过信令(通过ws)将视频禁用事件传递给远程用户,或者您可以使用数据通道来中继视频禁用/启用事件.

您可以根据peerConnection统计信息预测远程视频状态,但它们取决于带宽/网络波动.
此外,当我们禁用(mediaStream.getVideoTracks()[0].enabled = 0)视频轨道时,浏览器将发送一些视频数据(空/黑帧).