2013-02-13 124 views
0

我试图根据文件夹中的mp3文件创建jPlayer播放列表。 而且我发现jPlaylister: http://jplaylister.yaheard.us/v_0.65/jPlayer - 基于文件夹中的文件创建动态播放列表

我找到了一个类似的问题在这里: Dynamically populate playlist with JSON from PHP in jPlayer

现在,我不是在这些事情上的专家。我更像是一个设计和简单的代码类型的人。但我试图将代码编写到我的喜好中,并且我已经提出了这个问题。这根本不起作用。我不知道如何可以调试它,因为我不能得到$ .getJSON

响应这里是我的代码现在:

$(document).ready(function(){ 

     var cssSelector = { 
      jPlayer: "#jquery_jplayer_1", 
      cssSelectorAncestor: "#jp_container_1" 
     }; 
     var playlist = []; // Empty playlist 
     var options = { 
      swfPath: "js", 
      supplied: "mp3" 
     }; 

     //var playlist = [{"title":"Kalimba","mp3":"/path/to/mydirectory/Kalimba.mp3"},{"title":"Maid with the Flaxen Hair","mp3":"/path/to/mydirectory/Maid with the Flaxen Hair.mp3"},{"title":"Sleep Away","mp3":"/path/to/mydirectory/Sleep Away.mp3"}]; 
    var url= "getSongurl.php"; 
    var song = "Assets/mp3/mysong"; 

    var myPlaylist = new jPlayerPlaylist(cssSelector, playlist, options); 
    $.getJSON(url, {songurl: song}, function(data) { 
     $.each(data, function(key, val) { 
      myPlaylist.add(value); 
     }) 
    }); 
}); 

我想这首歌变量传递给JSON这样我可以在PHP中处理该文件夹并返回该文件夹中的所有文件。

现在,这里的PHP文件:

<?php 

    $results = array(); 

    $directory = $_POST['songurl']; 
    $handler = opendir($directory); 

    while ($file = readdir($handler)) { 
      $results[] = $file; 
      <script type="text/javascript"> 
       alert("file: <?php echo $file; ?>"); 
      </script> 
    } 

    $limit = count($results(); 
    $i = 0; 

    while ($i < $limit) { 
     $filesJson = array(
      'title:' => $i, 
      'mp3:' => $i 
     ); 
    } 

    //tidy up 
    closedir($handler); 
    echo json_encode($filesJson); 

    ?> 

我试图把警报在那里,但我没有得到任何警报无论是。也许只是我在这里做过的事情真的不对......

回答

0

那么,对于初学者,你需要有$limit = count($results());,而不是$limit = count($results();。这可能会搞砸了。

0

我写了jplaylister,一眼就看不到JSON。该脚本被制作为“指向文件夹”,并基于它在该文件夹/子文件夹中找到的所有内容制作播放列表(可筛选)。

它使用php数组存储它找到的内容,并且(从当前版本开始)提供播放列表缓存,以防文件数量很大并且从中获取ID3信息开始耗时。

让jplaylister工作(或让我知道它不是,并告诉我为什么或将我链接到您的开发代码)...然后将您的媒体文件添加到该...然后您可以开始欣赏它。

祝你好运!

尼克Ç

1

你的PHP文件中像

<?php 
$results = array(); 
$fdirectory = (isset($_REQUEST['songurl']))?$_REQUEST['songurl']:'songs/'; 
$handler = opendir($fdirectory); 
while ($file = readdir($handler)) { 
     if($file != '.' && $file != '..') 
     $results[] = $file; 
} 

if(!empty($results)){ 
    foreach($results as $k=>$song){ 
     $filesJson[] = array(
      'title' => preg_replace('/\\.[^.\\s]{3,4}$/', '', $song), 
      'mp3' => $fdirectory.$song 
     ); 
    } 
}  
closedir($handler); 
$songList = json_encode($filesJson); 
    if(isset($_REQUEST['songurl'])){ 
     echo $songList; 
    } 

JS

var url= "getSongs.php"; 
var song = "Assets/mp3/mysong/"; 
var cssSelector = { 
     jPlayer: "#jquery_jplayer_1", 
     cssSelectorAncestor: "#jp_container_1" 
    }; 

var playlist = []; // Empty playlist 
var options = { 
    swfPath: "dist/jplayer", 
    supplied: "mp3" 
}; 
$(document).ready(function(){ 
    var myPlaylist = new jPlayerPlaylist(cssSelector, playlist, options); 
    $.getJSON(url, {songurl: song}, function(data) { 
     $.each(data, function(key, val) { 
     myPlaylist.add(val); 
     }) 
    }); 

}); 

享受 :)

+0

尽管此代码作品,永远记得清理用户输入!例如,你不希望用户得到像这样的页面getSongurl.php?songurl =%2Fhome – mx0 2016-10-15 17:20:49

相关问题