2013-09-30 56 views
0

我有一些音頻文件(a.mp3,b.mp3,c.mp3)和一個隨機數組(b,c,a)。我想按照給定的順序播放這些音頻文件,就像在播放列表中一樣。
這是我到目前爲止的代碼:用JavaScript播放列表

<audio id="player" /> 

<script> 
//... extract 

var player = document.getElementById('player'); 
player.src="audio/"+array[0]+".mp3"; 
player.play(); // play first file 

for(c = 0; c < array.length; c++){ 
var next = "audio/"+array[c]+".mp3"; 
document.write(next); 
    player.addEventListener("ended",function() { 
     this.src = next; 
     this.play(); 
    }); 
} 
</script> 

的問題是,打第一個文件後,第二個文件被永遠播放。它永不停止,下一個文件無法播放。

+0

@Paulpro我猜陣列只有兩個項目。 – bfavaretto

+0

不,這個案例中它有3個元素,並真正打開第二個文件。 – user1170330

回答

2

你並不需要一個循環,決定什麼是下一個從「端」聽衆:

var current = 0; 
// ... 
player.addEventListener("ended",function() { 
    current = current + 1 < array.length ? ++current : 0; 
    this.src = "audio/" + array[current] + ".mp3"; 
    this.play(); 
}); 
+0

謝謝。現在它遍歷我的所有文件(例如3),然後循環第一個文件。 – user1170330

+0

是的,當它循環時,電流永遠不會重置爲0,但它應該。 – andi

+0

@andi真,修正了這個問題。沒有更多的「下一個」。 – bfavaretto