1

如何使用 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>

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

更新

我认为这应该像使用连续的函数调用一样简单,但这不起作用。我开始使用下面的示例代码研究和使用 sleep() 函数:

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

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

4

3 回答 3

3

在尝试了我发现的几个脚本之后,这对我有用

    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=1;
    audio.onended = function() {
        if(index < audionamesarray.length){
            audio.src=audionamesarray[index];
            audio.play();
            index++;
        }
    };
于 2019-08-07T13:26:19.813 回答
0

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

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

看这里

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

于 2014-10-07T16:04:47.110 回答
-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) {
        }
    }
}
于 2018-05-04T20:26:33.467 回答