MediaStream in Safari gibt Ressourcen nicht korrekt frei
P粉106715703
2023-08-30 17:23:15
<p>Ich verwende die AudioWorkletNode-Methode zum Aufzeichnen und alle Browser scheinen einwandfrei aufzuzeichnen. </p>
<p>Wenn ich aufzeichne, erscheint das Aufnahmesymbol auf der Registerkarte und verschwindet, wenn die Aufnahme endet. </p>
<p> In Safari wird jedoch anstelle des Mikrofonsymbols ein kleines Lautsprechersymbol (das normalerweise anzeigt, dass der Tab Ton ausgibt) angezeigt. </p>
<p>Ich glaube also, dass ich etwas nicht abgeschlossen habe. </p>
<p>Nach Abschluss der Aufnahme werde ich Folgendes tun:</p>
<pre class="brush:php;toolbar:false;">// stream ist ein MediaStream-Typ
if(stream)
stream.getTracks().forEach(track => track.stop());
stream = null</pre>
<p>Der Stream wird erstellt über: </p>
<pre class="brush:php;toolbar:false;">stream = waiting navigator.mediaDevices.getUserMedia({
Audio: Optionen
});</pre>
<p>Ist noch etwas erforderlich, um alle Ressourcen freizugeben? </p>
要关闭所有东西,下面的方法似乎有效。我只是通过试错找到了这个方法,因为我无法弄清楚如何让Safari告诉我它仍然持有什么: