如何使用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秒并打印两个语句而不是一个接一个。音频也是如此,这最终是我试图解决的问题。
答案 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即可。
然后该元素将加载“下一首歌曲”。
仅供参考:我刚刚复制了您的标题,并在谷歌搜索过它!我发现了这个问题......
答案 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) {
}
}
}