我正在尝试MediaStreamTrack
在我的 WebRTC 应用程序中实现使本地视频静音的功能。以下是我的处理方法:
function muteVideo() {
if (this._localStream && this._localStream.getVideoTracks().length > 0) {
this._localStream.getVideoTracks()[0].enabled = false;
}
}
在 Firefox 中,<video>
本地流附加到的元素在静音时正确呈现黑色。在 Chrome 中,不会渲染黑色,但图片会冻结。但是,在这两种浏览器中,摄像头的绿灯一直亮着,这显然是不受欢迎的行为。(我希望我的用户在视频静音时看到应用程序实际上与摄像头断开连接。)
如果我这样做了,相机的灯就会熄灭this._localStream.stop()
,但音频也会熄灭。
Media Capture 规范的当前草案提到了该MediaStreamTrack.stop()
方法,但目前似乎未在 Chrome 和 Firefox 中实现。
那么有没有办法在以下情况下静音本地视频:
- 使相机的灯熄灭
- 不会丢失音轨?