gpt4 book ai didi

javascript - 使用 jQuery + Javascript 播放带间距的 HTML5 音频元素

转载 作者:行者123 更新时间:2023-11-28 03:46:34 25 4
gpt4 key购买 nike

var audioPlaying = false;

if (!audioPlaying) {
// get a random audio element that has the class .sound
audio = $('.s' + (Math.round(Math.random() * $('.sounds').size())));
audio.get(0).play();
audioPlaying = true;
setTimeout(function(audioPlaying) {
audioPlaying = false;
}, 1000);
}

我正在研究一个在事件中播放声音的 javascript 东西。我不需要每秒播放一个以上的声音。我有一个函数检查音频是否正在播放(通过 true/false 变量),然后,如果是,则选择一个随机音频元素并播放它。然后将变量设置为表示音频正在播放 (true),然后设置超时以在 1 秒后将变量切换回 false。

这应该使音频至少在 1 秒后播放。但是,它似乎从未将 audioPlaying 变量设置回 false。播放了其中一种声音,之后没有播放。如果我删除将 audioPlaying 更改为 true 的代码,则播放的声音之间没有任何间隔。

谁知道怎么回事?

最佳答案

尝试这样的事情:

var audioPlaying = {
_audioPlayingNow: false,

playAudio: function()
{
if ( !audioPlaying._audioPlayingNow )
{
var audio = $('.s' + (Math.round(Math.random() * $('.sounds').size())));
audio.get(0).play();

audioPlaying._audioPlayingNow = true;
setTimeout( audioPlaying._resetAudioPlaying, 1000 );
}
else
{
setTimeout( audioPlaying.playAudio, 1000 );
}
},

_resetAudioPlaying: function()
{
audioPlaying._audioPlayingNow = false;
}
}

关于javascript - 使用 jQuery + Javascript 播放带间距的 HTML5 音频元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5268550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com