【问题标题】:Using jQuery + Javascript play HTML5 Audio elements with spacing使用 jQuery + Javascript 播放带间距的 HTML5 音频元素
【发布时间】:2011-03-11 03:08:27
【问题描述】:
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),然后设置超时以在 1 秒后将变量切换回 false。

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

有人知道怎么回事吗?

【问题讨论】:

    标签: javascript jquery html audio


    【解决方案1】:

    试试这样的:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-16
      • 2013-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多