使用jQuery+Javascript以空格播放HTML5音频元素

使用jQuery+Javascript以空格播放HTML5音频元素,javascript,jquery,html,audio,Javascript,Jquery,Html,Audio,我正在开发一个javascript程序,可以在事件中播放声音。我不需要每秒播放一个以上的声音。我有一个函数检查音频是否通过真/假变量播放,如果是,则选择一个随机音频元素并播放它。然后设置变量,表示音频正在播放true,然后设置超时,在1秒后将变量切换回false 这将使音频播放时间至少为1秒。然而,它似乎从未将audioPlaying变量设置回false。其中一个声音被播放,之后就没有了。如果我删除将audioPlaying更改为true的代码,则播放的声音之间没有任何间隔 有人知道怎么回事吗?

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

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


有人知道怎么回事吗?

试试这样的方法:

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);
}

试着这样做:

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);
}