Safari中的MediaStream未能正確釋放資源
P粉106715703
2023-08-30 17:23:15
<p>我正在使用AudioWorkletNode方法進行錄音,所有瀏覽器似乎都可以正常錄音。 </p>
<p>當我錄音時,錄音圖示會出現在標籤頁上,錄音結束後會消失。 </p>
<p>然而,在Safari瀏覽器中,標籤頁上會出現一個小喇叭圖示(通常表示標籤頁正在發出聲音),取代了麥克風圖示。 </p>
<p>所以我認為我可能沒有關閉某些東西。 </p>
<p>錄音完成後我會執行以下操作:</p>
<pre class="brush:php;toolbar:false;">// stream是MediaStream型別
if (stream)
stream.getTracks().forEach(track => track.stop());
stream = null</pre>
<p>流是透過以下方式創建的:</p>
<pre class="brush:php;toolbar:false;">stream = await navigator.mediaDevices.getUserMedia({
audio: options
});</pre>
<p>是否還需要做其他操作以釋放所有資源? </p>
要關閉所有東西,以下的方法似乎有效。我只是透過試誤找到了這個方法,因為我無法弄清楚如何讓Safari告訴我它仍然持有什麼: