2017-09-17 99 views
1

WebAudio允許通過navigator.getUserMedia()訪問麥克風。在調用此設置時,瀏覽器會顯示一個記錄標誌(Chrome和Edge中的紅點),表示該麥克風正在使用中。這工作正常,但我想能夠停用麥克風,然後這個紅點也應該消失。我打電話webcontext.close()也會停用該紅點標誌,但它至少在Chrome,Firefox和Edge中不起作用。WebAudio:如何停用麥克風

如何以瀏覽器記錄標誌消失的方式停用麥克風?

回答

2

我能找到解決自己,萬一有人有興趣:

假設我們激活我們的麥克風是這樣的:

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

然後我們可以使用下面的代碼段停用麥克風。這將使瀏覽器的錄製符號消失:

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

要停止所有軌道,包括來自網絡攝像機的視頻流,請使用'getTracks'而不是'getAudioTracks' – raphinesse