2015-05-17 4 views
3

У меня есть небольшой вопрос об использовании массива, содержащего аудиоисточники (ссылки) в цикле for.Как пропустить цикл javascript массива аудиофайлов?

Это мой код, в основном:

var audio = new Audio(); 
    var playlist = new Array('sounds/song0.m4a', 'sounds/song1.m4a', 'sounds/song2.m4a'); 

     for (var i = 0; i <= playlist.length; i++){ 
    audio.src = (playlist[i]); 
    audio.volume = 0.3; 
    audio.loop = false; 
    if (audio.ended = true) 
     i++; 

    if (i = 2) { 
     i = 0; 
    } 

Моя консоль дает мне ошибку на audio.src = (плейлист [I]); , Кто-нибудь знает, как это решить?

ответ

5

Вы должны использовать ended событие

var audio = new Audio(), 
    i = 0; 
var playlist = new Array('http://www.w3schools.com/htmL/horse.mp3', 'http://demos.w3avenue.com/html5-unleashed-tips-tricks-and-techniques/demo-audio.mp3'); 

audio.addEventListener('ended', function() { 
    i = ++i < playlist.length ? i : 0; 
    console.log(i) 
    audio.src = playlist[i]; 
    audio.play(); 
}, true); 
audio.volume = 0.3; 
audio.loop = false; 
audio.src = playlist[0]; 
audio.play(); 
+0

Как я должен реализовать это в моем коде? Если бы я хотел сыграть песни и петлю, то 1 - конец, следующая песня: 2, закончился, следующая песня: 3, закончился: loop restart to 1. - EDIT: Я думаю, что я получил его на работу, спасибо вы! – Kryptonous

+0

Ну, похоже, он работает, но когда песня заканчивается, она не переходит к следующей. Как мне это реализовать? – Kryptonous

+0

@ Криптоны http://jsfiddle.net/arunpjohny/rxs8xfLn/1/ –

 Смежные вопросы

  • Нет связанных вопросов^_^