停止后是否需要断开 Oscillator AudioNode?

Do I need to disconnect an Oscillator AudioNode after stop it?

我在几个教程中看到人们在振荡器节点中的 .stop() 之后使用 .disconnect()

据我所知,振荡器节点是一次性的,所以当它停止并被扔掉时,它不会断开连接吗?

我理解错了吗?为什么我需要在 .stop() 之后使用 .disconnect()

您不需要在 stop() 后断开振荡器。事实上,在安排了振荡器的开始和停止时间后,您应该能够立即降低对振荡器的引用,并且振荡器应该仍然播放。停止后,它应该会自动断开连接。

当然,实现中可能存在导致断开连接正确的错误。但这是一个错误。

根据 W3C Specification:

When an AudioNode has no references it will be deleted. Before it is deleted, it will disconnect itself from any other AudioNodes which it is connected to.

因此,当 AudioNode 停止并且没有留下任何引用时,它将自行断开连接,因此不需要在 stop() 之后显式调用 disconnect()