我正在尝试根据文件夹中的mp3文件创建jPlayer播放列表。 我找到了jPlaylister: http://jplaylister.yaheard.us/v_0.65/
我在这里发现了类似的问题: 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 :(得分: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);
})
});
});
享受:)
答案 1 :(得分:0)
嗯,对于初学者,您需要$limit = count($results());
,而不是$limit = count($results();
。这可能搞砸了。
答案 2 :(得分:0)
我写过jplaylister,一眼就看出JSON不是真的需要。该脚本被“指向一个文件夹”并根据它在该文件夹/子文件夹中找到的所有内容制作一个播放列表(可过滤)。
它使用php数组存储它找到的内容,并且(截至当前版本)提供播放列表缓存,以防文件数量很大并从中获取ID3信息开始非常耗时。
让jplaylister工作(或让我知道它不是,告诉我为什么或将我链接到你的开发代码)...然后将你的媒体文件添加到那...然后你可以开始喜欢它了。
祝你好运!Nick C