停止后是否需要断开振荡器AudioNode?

时间:2016-04-14 15:49:01

标签: javascript web-audio web-audio-api

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

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

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

2 个答案:

答案 0 :(得分:5)

停止()后,您不需要断开振荡器。实际上,在调度振荡器的启动和停止时间之后,您应该能够立即丢弃振荡器的参考,并且振荡器仍然应该播放。停止后,它应自动断开连接。

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

答案 1 :(得分:4)

根据W3C Specification

  

当AudioNode没有引用时,它将被删除。在它之前   删除后,它将与其它任何其他音频节点断开连接   已连接到。

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