在JS中静音AudioStreamTrack

时间:2017-03-15 11:41:17

标签: javascript getusermedia

我正在使用getUserMedia(),它返回包含MediaStream的{​​{1}}。如何将AudioStreamTrack静音?它有一个AudioStreamTrack事件,所以它应该以某种方式使轨道静音。

1 个答案:

答案 0 :(得分:1)

使用track.enabled(Chrome https fiddle):



navigator.mediaDevices.getUserMedia({audio: true})
  .then(stream => audio.srcObject = stream)
  .catch(e => console.log(e));

mute.onclick = () => { audio.srcObject.getTracks()[0].enabled = !mute.checked; };

<audio id="audio" controls autoplay></audio>
<label><input type="checkbox" id="mute">mute</label>
<script src="https://webrtc.github.io/adapter/adapter-latest.js"></script>
&#13;
&#13;
&#13;

请注意onmute在这种情况下不会触发。只有当麦克风在JavaScript的控制之外被静音时它才会触发,例如最终用户(虽然还没有浏览器实现)。