在 JS 中静音 AudioStreamTrack
Muting an AudioStreamTrack in JS
我正在使用 getUserMedia()
,其中 returns 一个包含 AudioStreamTrack
的 MediaStream
。我怎样才能使 AudioStreamTrack
静音?它有一个 onmute
事件,因此它应该能够以某种方式使轨道静音。
使用track.enabled
(https fiddle用于Chrome):
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>
请注意,在这种情况下 onmute
不会触发。仅当麦克风在 JavaScript 的控制之外静音时才会触发,例如由最终用户(尽管还没有浏览器实现)。
我正在使用 getUserMedia()
,其中 returns 一个包含 AudioStreamTrack
的 MediaStream
。我怎样才能使 AudioStreamTrack
静音?它有一个 onmute
事件,因此它应该能够以某种方式使轨道静音。
使用track.enabled
(https fiddle用于Chrome):
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>
请注意,在这种情况下 onmute
不会触发。仅当麦克风在 JavaScript 的控制之外静音时才会触发,例如由最终用户(尽管还没有浏览器实现)。