2012-02-26 38 views
1

多声音文件的基础我想基于队列顺序在我的网页播放多个声音文件,比如我有队列顺序一样1.wav 2.wav 3.wav,然后我有我的数据库存储每个单词0-9的语音。我要玩队列

我试图创建简单的脚本,以播放声音上的一个按钮的点击。

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

回答

3

我从众你liek递归!

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

这得到音频对象的数组,实际上impements队列

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)]); 
+0

不能似乎使在这里的工作是什么,我有:http://smldesign.com/play.htm – Blnukem 2012-02-26 20:00:51

+0

文件名中的报价对于初学者,并把queue_sounds函数定义后 – Loupax 2012-02-27 13:28:36

+0

有它,运行起来! http://jsfiddle.net/TG7k7/13/ – Loupax 2012-02-27 13:54:24