JavaScript一个接一个地播放HTML5音频

时间:2014-12-08 17:53:50

标签: javascript html5 audio addeventlistener

我有一个接一个地从动态创建的javascript音频对象播放音频的问题。音频来自谷歌的一系列字符串。

for (i = 0; i < Txt_array.length; i++) {
audio.src ='http://translate.google.com/translate_tts?&tl=en&q='+Txt_array[i];
audio.play();};

我想通过事件监听器执行此操作,还是有其他方法吗?它不只是谷歌,所以我想问你一个通用的解决方案,而不是现成的谷歌语音脚本。

你可以帮帮我吗?我怎样才能一个接一个地播放音频?

更新

audio.src='http://translate.google.com/translate_tts?&tl=en&q=' + Txt_array[0];
audio.play();

audio.addEventListener('ended', function(){
for (i = 1; i < Txt_array.length; i++) {
audio.src ='http://translate.google.com/translate_tts?&tl=en&q='+Txt_array[i];
audio.play();};
}, false);

我添加了Eventlistener,我想它应该像这样工作,但我还有一个问题,如果这是第一个播放的文件,Eentlistener不会触发,对吗?

我很乐意得到进一步的支持。

提前谢谢。

1 个答案:

答案 0 :(得分:4)

有一个ended事件,您可以更改侦听器中的src属性。

var strings = "Hello how are you".split(" ");
var index = 1;

audio.src='http://translate.google.com/translate_tts?&tl=en&q=' + strings[0];
audio.play();

audio.onended = function() {
    if(index < strings.length){
        audio.src='http://translate.google.com/translate_tts?&tl=en&q=' + strings[index];
        audio.play();
        index++;
    }
};