MediaStream 未在 Safari 中发布内容

问题描述 投票:0回答:1

我正在使用 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
});

我还需要做些什么来释放所有资源吗?

javascript safari web-audio-api
1个回答
0
投票

为了关闭一切,以下似乎有效。我只是通过反复试验到达那里,因为我不知道如何让 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
© www.soinside.com 2019 - 2024. All rights reserved.