JavaScript 一个接一个播放音频 HTML5

Owe*_*nir 5 html javascript audio addeventlistener

我在一个接一个地从动态创建的 javascript 音频对象播放音频时遇到问题。音频来自 Google 的一系列字符串。

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

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

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

更新:

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);
Run Code Online (Sandbox Code Playgroud)

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

我很乐意提供进一步的支持。

先感谢您。

tac*_*lux 11

有一个已结束的事件,您可以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++;
    }
};
Run Code Online (Sandbox Code Playgroud)