javascript - 我如何以另一个函数的路径运行Audio.play,就像它们在同一个函数中一样快?

标签 javascript audio avaudioplayer

我正在尝试制作一个像游戏一样的“cookie Clicker”,每次单击Clicker时都需要播放声音。我的问题是,新的Audio和audio.play在两个单独的函数中(具有全局变量),这导致从单击到声音的延迟。
有什么方法可以消除延迟,而无需将其移至同一功能?
这是定义音频的地方:

[].forEach.call(document.getElementById('skins').children, function(e) {
e.onclick = function () {
  klikketskin = this.id;
  clicklyd = new Audio(`Medier/Lyd/Clicker/${klikketskin}.mp3`); }
播放的位置(脚本的后面):
function clickevent() {
clicklyd.play(); }
现在如何(打开声音):
https://imgur.com/a/2vf4NWG
我想要的(打开声音):
https://imgur.com/a/x4wYFq2
保护你! :D

最佳答案

您应该将currentTime属性重置回0,这将使声音从头开始重放,然后再次调用play()

function clickevent() {
  clicklyd.currentTime = 0;
  clicklyd.play(); 
}
但是,如果尚未结束,则会切断前一个声音。

关于javascript - 我如何以另一个函数的路径运行Audio.play,就像它们在同一个函数中一样快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64360446/

相关文章:

python - Jupyter 循环播放声音

html - 流式传输音频而不是下载

iphone - (iPhone)如何使用AVAudioPlayer顺序播放声音?

objective-c - AVAudioPlayer 阻塞和 iOS 5 问题

javascript - 将函数转换为 JSON,然后再次运行

javascript - 如何使用javascript计算元素的点击次数

javascript - 无法使用 Twilio Video 禁用 localParticipant.audioTracks

audio - ffmpeg 将静音视频与另一个视频+音频合并

iphone - 如何创建音频停止按钮?

javascript - 代码片段解释,函数参数