Javascript 循环播放html5音频中的歌曲
当播放整个播放站点时,循环在结束时停止,但它不会重新启动并将currentSong设置为1?我的数组中有8首歌,它循环播放每首歌,当它们结束时,它们调用NextSong,但当最后一首歌播放时,什么也没有发生Javascript 循环播放html5音频中的歌曲,javascript,html,audio,Javascript,Html,Audio,当播放整个播放站点时,循环在结束时停止,但它不会重新启动并将currentSong设置为1?我的数组中有8首歌,它循环播放每首歌,当它们结束时,它们调用NextSong,但当最后一首歌播放时,什么也没有发生 function NextSong() { alert("next song"); document.removeEventListener('ended',NextSong); if(rewindClicked ==true) { curr
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);
}
函数NextSong()
{
警报(“下一首歌”);
文件。删除文件列表器(“已结束”,下一首歌);
如果(倒带单击==真)
{
当前歌曲--;
}
其他的
{
当前歌曲++;
}
如果(当前歌曲>歌曲列表.长度)
{
currentSong=1;
}
如果(当前歌曲<1)
{
currentSong=songList.length;
}
歌曲列表[currentSong]。播放();
倒带=假;
//歌曲。添加的歌曲列表(“结束”,下一首歌曲);
歌曲列表[currentSong].addEventListener('ended',NextSong);
}
数组索引从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(当前歌曲<1)
{
currentSong=songList.length;
}
到
if(当前歌曲<0)
{
currentSong=songList.length-1;
}
还注意到:if(currentSong>=songList.length){currentSong=0;}
if(currentSong < 0)
{
currentSong = songList.length - 1;
}