2014-12-08 2 views
3

동적으로 생성 된 자바 스크립트 오디오 객체에서 오디오를 재생하는 데 문제가 있습니다. 오디오는 다양한 문자열을 통해 Google에서 제공됩니다.자바 스크립트에서 오디오가 차례대로 재생됩니다. HTML5

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

나는 이벤트 수신기로이를 수행하고 싶습니다. 아니면 다른 방법이 있습니까? Google에 관한 것만이 아니므로 준비된 Google 음성 스크립트가 아닌 일반적인 해결책을 물어보고 싶습니다.

도와 주시겠습니까? 오디오를 하나씩 재생하려면 어떻게해야합니까?

업데이트 :

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

내가, 내가 이렇게 작동합니다 생각하지만, 난 여전히이 첫 번째 파일, 바로 재생할 경우 Eentlistener가 발생하지 않는 문제가 해일의 EventListener를 추가?

추가 지원에 만족합니다.

미리 감사드립니다.

답변

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

대단히 감사합니다. 나는 업데이트 된 버전이 작동해야한다고 생각하지만 그렇지 않습니다. 나 한테는 어떤 근심이 있니? 미리 감사드립니다. – Owenir

+0

에있는 오디오를 루프 할 수 없습니다. 함수 외부에서 오디오와 색인을 추적하고 이전 내용이 끝나면 하나씩 불러 와야합니다. – tachyonflux

+0

대단히 감사합니다.이 도움이되었습니다. – Owenir

관련 문제