我想基于队列播放多个声音文件

时间:2012-02-26 19:13:21

标签: javascript jquery html ajax

我想根据队列顺序在我的网页上播放多个声音文件,例如我有1.wav 2.wav 3.wav等队列顺序,然后我有我的数据库来存储每个单词0-9的声音。

我正在尝试创建简单的脚本,只需单击一下按钮即可播放声音。

PLAY-> 1.wav - > END:PLAY-> 2.wav - > END:PLAY-> 3.wav - > END

1 个答案:

答案 0 :(得分:3)

我跟你撒谎递归!

//This plays a file, and call a callback once it completed (if a callback is set)

function play(audio, callback) {

audio.play();
if(callback)
{
    audio.onended = callback;
}
}

这会获得一个音频对象数组,实际上会阻止队列

function queue_sounds(sounds){

    var index = 0;
    function recursive_play()
    {
      if(index+1 === sounds.length)
      {
        play(sounds[index],null);
      }
      else
      {
        play(sounds[index],function(){index++; recursive_play();});
      }
    }

recursive_play();   
}

所以你实际上做了这样的事情:

queue_sounds([new Audio(foo), new Audio(bar), new Audio(lol)]);