我正在使用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)。

08-26 04:41