我怎样才能收到通知/事件,当mediaStreamTrack.修改为“启用”



我正在使用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属性改变时,目前没有事件触发/回调调用。

从这里

:

也没有"onmuted"one_answers";onunmuted"事件定义或触发在WebRTC原生实现。

你可能需要自己构建这个机制:

请记住,您正在禁用本地媒体跟踪;它不会在目标用户端触发任何事件。如果你禁用了视频轨迹;然后就会导致视频空白在目标用户端。

您可以手动触发事件,如"onmuted"或";onmediatrackdisabled"通过使用用于信令的套接字。您可以发送/发出这样的消息:

yourSignalingSocket.send({
    isMediaStreamTrackDisabled: true,
    mediaStreamLabel: stream.label
});

根据规范,这应该最终成为MediaStreamTrack接口的一部分:

onmute类型为EventHandler,

此事件处理程序类型为mute,必须为所有实现MediaStreamTrack接口的对象所支持。

我尝试在Chrome(43)中分配一个函数到轨道的onmute,但它从未被调用(看起来这还没有实现)。

相关内容

  • 没有找到相关文章

最新更新