2017-02-21 4 views
0

У меня есть следующий код в качестве фона музыкального проигрывателя для киоска: -foreach not looping, неправильно ли я ссылаюсь?

<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); ?> 

Это только писать один исходный элемент, соответствующий первый член (перемешиваются) массива.

Отладочный дамп содержит полный массив, поэтому я считаю, что у меня что-то не так, как в выражении foreach, так и в выражении эха.

+1

'var_dump ($ music);' , чтобы проверить, есть ли его массив –

+0

Richard Grevers chcek ответы ниже. –

ответ

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 («../ music/*»);

Двоеточие идти назад в каталог

заменить код с этим.

<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> 
+0

К сожалению, я должен был быть конкретным - мой массив правильно заполнен всеми URL-адресами треков - спецификатор каталога верен как есть. но записывается только первый источник. –

0

Моя проблема заключается в том, что элемент HTML5 Audio не имеет возможности указывать несколько источников, которые будут воспроизводиться последовательно. Несколько исходных тегов просто указывают альтернативы (для покрытия неполной поддержки браузерами форматов), о которых я уже знал. Что отбросило меня от трека, так это то, что источник просмотра показал вычисленный источник, показывающий исходный тег только первого успешного источника. Остальные были видны через Element Inspector.

Поэтому мне нужно использовать решение для javascript, например, в http://www.lastrose.com/html5-audio-video-playlist/ Это будет завтрашнее задание :-) Спасибо за ваше время.