我正在使用AudioWorkletNode方法进行录音,所有浏览器似乎都可以正常录音。
当我录音时,录音图标会出现在标签页上,录音结束后会消失。
然而,在Safari浏览器中,标签页上会出现一个小喇叭图标(通常表示标签页正在发出声音),取代了麦克风图标。
所以我认为我可能没有关闭某些东西。
录音完成后我会执行以下操作:
// stream是MediaStream类型 if (stream) stream.getTracks().forEach(track => track.stop()); stream = null
流是通过以下方式创建的:
stream = await navigator.mediaDevices.getUserMedia({
audio: options
});
是否还需要做其他操作以释放所有资源?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
要关闭所有东西,下面的方法似乎有效。我只是通过试错找到了这个方法,因为我无法弄清楚如何让Safari告诉我它仍然持有什么:
// 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