我在自助服务终端的背景音乐播放器中有以下代码: -
<audio id="player" autoplay="true" loop="true" >
<?php
$music = glob("./music/*"); // get all files in the music directory
shuffle($music);
foreach ($music as $song){
echo '<source src="'. $song . '" type="audio/ogg">';
}
?>
</audio>
<?php var_dump($music); ?>
它只写一个源元素,匹配(shuffled)数组的第一个成员。
调试转储列出了完整的数组,所以我认为我的foreach表达式或echo表达式中有错误。
答案 0 :(得分:0)
是的,这是正确的,您需要更正glob('<need some change here>')
它的路径问题,否则代码就完美了。
C:\wamp64\www\phpDiary\program\1.php:10:
array (size=5)
0 => string '1 (2).jpg' (length=9)
1 => string '2.php' (length=5)
2 => string '1.php' (length=5)
3 => string '1 (1).jpg' (length=9)
4 => string '1 (3).jpg' (length=9)
这是您的代码的输出。我认为它的$ music = glob(&#34; ../ music / *&#34;);
在目录
中向后移动双点
用这个代替你的代码。
<audio id="player" autoplay="true" loop="true" controls>
<?php
$music = glob("../music/*"); // get all files in the music directory
shuffle($music);
foreach ($music as $song){
// echo '<source src="'. $song . '" type="audio/ogg">';
echo "<source src='".$song."' type='audio/ogg'>";
// echo "hello";
}
?>
</audio>
答案 1 :(得分:0)
我的问题是HTML5 Audio元素无法指定要按顺序播放的多个源。多个源标签只是指定备选方案(以涵盖格式的不完整浏览器支持),我已经知道了。 让我离开轨道的是视图源显示计算源,仅显示第一个成功源的源标记。其余部分通过Element Inspector可见。
所以我需要使用javascript解决方案,例如http://www.lastrose.com/html5-audio-video-playlist/的解决方案 这将是明天的任务:-)感谢您的时间。