Javascript Web音频API:如何在没有故障的情况下计划外暂停?
我正在为我的下一个项目查看Web音频API,我对缺少播放/暂停感到困惑 我需要以下功能:用户可以单击“暂停”,声音在Javascript Web音频API:如何在没有故障的情况下计划外暂停?,javascript,audio,web-audio-api,Javascript,Audio,Web Audio Api,我正在为我的下一个项目查看Web音频API,我对缺少播放/暂停感到困惑 我需要以下功能:用户可以单击“暂停”,声音在N秒内消失。淡出后,声音暂停。如果在淡出过程中单击“播放”,则声音会在后面淡出,并且从不暂停 我能找到的唯一解决方案是以下内容,但我不确定它是否能防止出现故障。“点击播放”后的步骤是否保证足够快?还有,有没有更简单的方法 当前播放源时,连接到增益节点和输出节点 使用(t,o)=(上次启动声音时,偏移量为) 和end=0 单击暂停, end:=(o+N)%soundDuratio
N
秒内消失。淡出后,声音暂停。如果在淡出过程中单击“播放”,则声音会在后面淡出,并且从不暂停
我能找到的唯一解决方案是以下内容,但我不确定它是否能防止出现故障。“点击播放”后的步骤是否保证足够快?还有,有没有更简单的方法
当前播放源
时,连接到增益
节点和输出
节点
使用(t,o)
=(上次启动声音时,偏移量为)
和end
=0
- 单击暂停,
end:=(o+N)%soundDuration
- 在时间
currentTime+N
- 将增益设置为渐弱
- 点击播放,
- 如果仍然淡出:
(t,o):=(currentTime,o+(currentTime-t))
- 否则:
(t,o):=(当前时间,结束)
- 在偏移量
o处启动
source2
- 将
连接到source2
和gain
output
- 将增益设置为fadein
- 断开
与其源
和增益
输出的连接
source:=source2
- 如果仍然淡出:
源
与其增益
和输出
节点断开连接李>
source2
连接到相同的2个节点李>
source
在1ms内停止,并source2
在1ms内开始偏移(o+(currentTime-t)+1ms)
李>
源
我不明白你为什么要断开节点?另外,你可能对它感兴趣,而且可能没有必要!我现在对API不太了解,所以可能
stop()
足够让source
稍后被GC'ed。您提到的函数将用于连接到增益
节点的参数
节点,但我认为这与我的问题无关。