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