HTML5按顺序播放音频文件

时间:2014-10-07 00:17:46

标签: audio autoplay php-5.5

如何使用PHP顺序播放音频文件?

我有多个音频文件我想顺序播放而不是同时播放。 我使用的代码类似于以下内容:

<audio controls autoplay='true'>
  <source src="sample1.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>

<audio controls autoplay='true'>
  <source src="sample2.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>

我需要 sample2 sample1 播放完毕后播放5秒。在这两种情况下都不应涉及用户交互。

有人可以推荐一个解决方案吗?

更新 我认为这应该像使用连续的函数调用一样简单但是没有用。 我开始使用下面的示例代码查看并使用sleep()函数:

print "<br>Line1";
sleep(10);
print "<br>Line2";

这只会将整个脚本延迟10秒并打印两个语句而不是一个接一个。音频也是如此,这最终是我试图解决的问题。

3 个答案:

答案 0 :(得分:1)

尝试了几条发现的便笺后,这对我有用

    var audionameslist = "audiolib/1.mp3,audiolib/2.mp3,audiolib/3.mp3";
    var audionamesarray = audionameslist.split(',');
    var audio = new Audio(audionamesarray[0]);

    audio.src=audionamesarray[0];
    audio.play();

    index=0;
    audio.onended = function() {
    if(index < audionamesarray.length){
        audio.src=audionamesarray[index+1];
        audio.play();
        index++;
        }
    };

答案 1 :(得分:0)

之前已回答过这个问题。 您不需要任何PHP,它都在HTML5 API中。

玩家有一个已结束的事件ended。只需在触发结束后更改src attrib即可。 然后该元素将加载“下一首歌曲”。

Look here

仅供参考:我刚刚复制了您的标题,并在谷歌搜索过它!我发现了这个问题......

答案 2 :(得分:-1)

你可以创建一个类似下面的小JS。只需将音频元素ID传递给该函数,它就应该按顺序播放它。谢谢你,一切顺利。

function playAll(audioidlist) {
    var audioarray = audioidlist.split(',');
    for (var i = 0; i < audioarray.length; i++) {
        var audio = document.getElementById(audioarray[i]);
        audio.play();
        while (!audio.ended) {
        }
    }
}