音乐结束时自动播放新的音频文件

时间:2014-12-23 01:58:55

标签: javascript audio

我有一个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>

1 个答案:

答案 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>

fiddle demo

在HTML5中,您可以使用隐藏的音频元素播放随机歌曲,收听ended事件,然后调用原始函数,该函数将替换音频元素(可以通过{{1}跟踪})。

也可以使用id代替sound1="Mus ...; sound2 = "...,然后可以减少if循环到var sounds = [file1, file2..];