设置动态音频播放列表

时间:2013-02-19 00:06:31

标签: php html5 mp3 media-player

我正在使用HTML5音频播放器(Speakker)。我已经创建了一个动态创建播放列表的功能,但是我不确定如何在创建播放列表后实现该播放列表。这似乎是有经验的人可能认为理所当然的事情。我希望是这样的。

创建播放列表。检查。

    <?php $playlist= "{\"playlist\": [";?>
    <?php foreach ($items as $item){
        $titlemetadata= metadata($item, array('Dublin Core', 'Title'));
            foreach($item->Files as $file) {
                // print_r($file);
                $sourcemetadata= metadata($file, 'uri');
                $imagemetadata= metadata($file, 'thumbnail_uri');
                if (strpos($file["filename"], 'mp3') !== false) {
                    $playlist .=
                    "\"0\": {\"src\":\"$sourcemetadata\", \"type\":\"audio/mp3\"}, 
                    \"config\": 
                    {\"title\": \"$titlemetadata\",
                    \"poster\": \"$imagemetadata\"}";
                }
            }       
    }?>
    <?php $playlist .= "]}";?>
    <?php echo $playlist;?>

实施播放列表?不。

<audio class="projekktor speakker dark"> <source src= ??THE PLAYLIST?? type="application/json"/> </audio>

1 个答案:

答案 0 :(得分:0)

我弄清楚了。这是一个解决方案:

<?php $collections=get_records("collection", array("public"=>"true","featured"=>"true"));
  $current_collection=end($collections);
  $items=get_records("item", array("collection"=>$current_collection));

  $playlist= "[";
  foreach ($items as $item){
    $titlemetadata= metadata($item, array("Dublin Core", "Title"));
        foreach($item->Files as $file) {
            $sourcemetadata= metadata($file, "uri");
            $imagemetadata= metadata($file, "thumbnail_uri");
            if (strpos($file["filename"], "mp3") !== false) {
                $playlist .=
                "{\"0\": {\"src\":\"$sourcemetadata\", \"type\":\"audio/mp3\"}, 
                \"config\": 
                {\"title\": \"$titlemetadata\",
                \"poster\": \"$imagemetadata\"}},";
            }
        }       
   }
   $playlist .= "]";?>
<?php 
    $string = '$(document).ready(function() {projekktor(".projekktor").setFile(' . $playlist . ');});';
queue_js_string($string);?>