我正在使用getUserMedia
来访问网络摄像头。我有一个功能,可以执行以下操作来打开和关闭视频:
var videoTracks = this.stream.getVideoTracks();
if (videoTracks.length === 0) {
trace('No local video available.');
return;
}
trace('Toggling video mute state.');
for (var i = 0; i < videoTracks.length; ++i) {
videoTracks[i].enabled = !videoTracks[i].enabled;
}
trace('Video ' + (videoTracks[0].enabled ? 'unmuted.' : 'muted.'));
更改
enabled
的值时如何接收事件?我尝试使用Object.observe
,但是不起作用。 最佳答案
据我所知,当enabled
属性更改时,当前没有触发/回调事件。
从here:
您可能必须自己构建此机制:
yourSignalingSocket.send({
isMediaStreamTrackDisabled: true,
mediaStreamLabel: stream.label
});
根据spec的说明,这最终应成为MediaStreamTrack接口(interface)的一部分:我尝试在Chrome(43)中为轨道的
onmute
分配一个函数,但从未调用过(looks like this is not implemented yet)。