在Web音频振荡器上调用stop()时,振荡器节点只会挂起,断开连接和未使用。
如果我告诉振荡器在2秒内停止:
oscillator.stop( audioCtx.currentTime + 2 );
有没有办法设置回调,所以我可以在stop()运行后立即删除振荡器?
我考虑过使用带有停止时间加上半秒左右的setTimeout,但最终可能会删除错误的振荡器。
答案 0 :(得分:5)
振荡器节点支持振荡器结束(停止)时调用的onended事件。
答案 1 :(得分:0)
为什么你甚至会参考振荡器?如果在调用stop()后立即释放对振荡器的引用,则WA系统会将其保持不变直到完成,然后它将自动收集垃圾。你不需要自己坚持下去。