2013-02-19 125 views
1

我正在使用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>

+0

澄清。 speakker自述文件中的代碼顯示播放列表是這樣聲明的: '' 我想使用$ playlist變量而不是json文件。該文件說,我可以設置一個播放列表: 'projekktor('player_a')。setFile(playlist);' 我不確定在哪裏放置代碼,如果它與PHP兼容,或者它仍然可以工作該文件指出它已過時。有任何想法嗎? – bspace 2013-02-20 03:22:06

回答

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