[英]Looping through array of songs html5 audio
播放完整个播放站点后,循环将在结尾处停止,但不会重启并将currentSong设置为1? 我的阵列中有8首歌曲,它循环播放每首歌曲并播放它们,当它们结束时它们称为NextSong,但是当最后一首歌曲播放时,什么都没有发生。
function NextSong()
{
alert("next song");
document.removeEventListener('ended',NextSong);
if(rewindClicked ==true)
{
currentSong--;
}
else
{
currentSong++;
}
if(currentSong > songList.length)
{
currentSong = 1;
}
if(currentSong < 1)
{
currentSong = songList.length;
}
songList[currentSong].play();
rewindClicked = false;
//song.addEventListener('ended', NextSong);
songList[currentSong].addEventListener('ended', NextSong);
}
Arrary索引从0开始。
if(currentSong > songList.length)
{
currentSong = 1;
}
songList[currentSong].play();
这部分允许currentSong
恰好是数组的长度,这意味着songList[currentSong]
试图越界访问元素,这可能在JavaScript错误控制台中看到。 换句话说,如果数组中有8首歌曲,则songList[ 7 ]
是它们的最后一个。
将条件更改为:
if(currentSong >= songList.length)
同样,您可能需要更改
if(currentSong < 1)
{
currentSong = songList.length;
}
至
if(currentSong < 0)
{
currentSong = songList.length - 1;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.