我正在使用 AudioWorkletNode 方法进行录音,它似乎在所有浏览器中都可以正常录音。
当我正在录制时,录制图标出现在选项卡中,然后在录制结束时消失。
但是,在 Safari 中,选项卡中的小扬声器图标(通常表示选项卡正在发出声音的东西)取代了麦克风图标。
所以我想我不能关掉某些东西。
录制完成后我会这样做:
// stream is of type MediaStream
if (stream)
stream.getTracks().forEach(track => track.stop());
stream = null
Stream 创建于:
stream = await navigator.mediaDevices.getUserMedia({
audio: options
});
我还需要做些什么来释放所有资源吗?
为了关闭一切,以下似乎有效。我只是通过反复试验到达那里,因为我不知道如何让 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