我有一个JavaScript,我发现随机选择一个音乐文件,然后在网站启动时播放它。现在,我想知道是否有一种方法可以改变剧本,并在演唱结束时开始播放新歌。这样,只要歌曲结束,用户就不必刷新页面。
这是代码:
<script>
var sound1="Music/AnythingGoes.mp3"
var sound2="Music/AWonderfulGuy.mp3"
var sound3="Music/BoogieMan.mp3"
var sound4="Music/ButcherPete.mp3"
var sound5="Music/Civilization.mp3"
var x=Math.round(Math.random()*4)
if (x==0) x=sound1
else if (x==1) x=sound2
else if (x==2) x=sound3
else if (x==3) x=sound4
else x=sound5
if (navigator.appName=="Microsoft Internet Explorer")
document.write('<bgsound src='+'"'+x+'"'+' loop="infinite">')
else
document.write('<embed src='+'"'+x+'"'+'hidden="true" border="0" width="0" height="0" autostart="true" loop="true">')
</script>
答案 0 :(得分:1)
<强> 编辑: 强> 示例代码:
<audio id = 'aud' src = 'http://upload.wikimedia.org/wikipedia/en/f/f9/Beatles_eleanor_rigby.ogg' autoplay></audio>
<script>
var aud = document.getElementById('aud');
aud.onended = function() {
console.log("Track Changing.");
// aud.src = getRandomSongSrc();
aud.src = "http://upload.wikimedia.org/wikipedia/commons/5/5b/Ludwig_van_Beethoven_-_Symphonie_5_c-moll_-_1._Allegro_con_brio.ogg";
aud.load();
};
</script>
在HTML5中,您可以使用隐藏的音频元素播放随机歌曲,收听ended
事件,然后调用原始函数,该函数将替换音频元素(可以通过{{1}跟踪})。
也可以使用id
代替sound1="Mus ...; sound2 = "...
,然后可以减少if循环到var sounds = [file1, file2..];