MediaStream dalam Safari gagal mengeluarkan sumber dengan betul
P粉106715703
P粉106715703 2023-08-30 17:23:15
0
1
505
<p>Saya menggunakan kaedah AudioWorkletNode untuk merakam dan semua penyemak imbas nampaknya sedang merakam dengan baik. </p> <p>Apabila saya merakam, ikon rakaman muncul pada tab dan hilang apabila rakaman tamat. </p> <p> Walau bagaimanapun, dalam Safari, ikon pembesar suara kecil (biasanya menunjukkan bahawa tab mengeluarkan bunyi) akan muncul pada tab dan bukannya ikon mikrofon. </p> <p>Jadi saya rasa saya mungkin tidak menutup sesuatu. </p> <p>Selepas rakaman selesai saya akan melakukan perkara berikut:</p> <pre class="brush:php;toolbar:false;">// strim ialah jenis MediaStream jika(strim) stream.getTracks().forEach(track => track.stop()); strim = null</pra> <p>Strim dibuat melalui: </p> <pre class="brush:php;toolbar:false;">stream = tunggu navigator.mediaDevices.getUserMedia({ audio: pilihan });</pre> <p>Adakah terdapat apa-apa lagi yang diperlukan untuk mengeluarkan semua sumber? </p>
P粉106715703
P粉106715703

membalas semua(1)
P粉536909186

Untuk mematikan semuanya, kaedah di bawah nampaknya berkesan. Saya baru sahaja menemui ini melalui percubaan dan kesilapan kerana saya tidak dapat mengetahui cara untuk mendapatkan Safari memberitahu saya perkara yang masih ada:

// stream : MediaStream
// sourceNode : MediaStreamAudioSourceNode
// recorderNode : AudioWorkletNode

const tracks = stream.getTracks();
tracks.forEach((track) => {
  track.stop();
  stream.removeTrack(track)
});
stream = null

sourceNode.disconnect();
sourceNode = undefined

recorderNode.disconnect();
recorderNode = undefined
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan