WebAudio:如何停用麦克风

WebAudio: How to deactivate microphone

WebAudio 允许通过 navigator.getUserMedia() 访问麦克风。调用它时,浏览器会显示一个重新编码标志(Chrome 和 Edge 中的红点),表明麦克风正在使用中。这工作正常,但我希望能够停用麦克风,然后这个红点也应该消失。我认为调用 webcontext.close() 也会停用那个红点标志,但它不会,至少在 Chrome、Firefox 和 Edge 中是这样。

如何以浏览器录制标志消失的方式停用麦克风?

我自己找到了解决方案,以防有人感兴趣:

假设我们像这样激活我们的麦克风:

navigator.mediaDevices.getUserMedia(constraints).then(stream => {
    this._userMediaInputStream = stream;
    ...            
}).catch(errorFunction);

然后我们可以使用以下代码停用麦克风。这将使浏览器的录音符号也消失:

this._userMediaInputStream.getAudioTracks().forEach(track => {
    track.stop();
});