2016-03-19 3 views
0

Ich habe drei Klangobjekte:Audio in HTML5: Wie spielt man einen Sound nach einem anderen Sound?

sound_a = new Audio("a.mp3"); 
sound_b = new Audio("b.mp3"); 
sound_c = new Audio("c.mp3"); 

Ich möchte den Ton b spielen, wenn der Sound beendet ist. Und spielen Sie den Sound c, wenn der Sound b beendet ist.

Wie kann ich das tun?

Mein Code ist folgende:

sound_a.pause(); 
sound_a.currentTime = 0; 
sound_a.play(); 

sound_b.pause(); 
sound_b.currentTime = 0; 
sound_b.play(); 

sound_c.pause(); 
sound_c.currentTime = 0; 
sound_c.play(); 

Antwort

1

der einfachste Weg, ein einzelnes Audio Objekt, ein Array von Quellen, es wäre, halten zu tun, hört Ereignis und das Spiel zu beenden:

let i = -1, sources =[...], a= new Audio(), playNext= e => { 
    i++; 
    if(!sources[i]) return; 
    a.src=sources[i]; 
} 
a.autoplay = true; 
a.onended = playNext; 
playNext(); 

Fiddle Demo

+0

Vielen Dank !!! Wie kann ich Ihren Code im normalen Modus konvertieren? (weil Sie 'strikt' verwenden) – totoaussi

+0

@ totoaussi das gleiche in [ES5] (http://jsfiddle.net/mido22/kr7ef7ny/2/) – mido

+0

vielen Dank, du bist nett !!! – totoaussi

1

Sie können here eine Antwort auf Ihre Frage. Wenn das nicht hilft, versuchen Sie, andere Lösungen zu finden, da diese Frage bereits zuvor gestellt und gelöst wurde.