我正在尝试使用以下代码在JPlayer中使用Getsong.php播放一首歌,播放正常,我遇到的问题是歌曲图像(或专辑照片),我需要检查一下目录,以查看该图像文件是否存在,如果存在,则显示它,否则显示“no_img_file.jpg文件。 我通过检查域路径/ user_id文件夹/和song_filename .jpg
来完成此操作但我无法让它发挥作用。 请帮助
$(document).ready(function(){
$("#jquery_jplayer_1").jPlayer({
ready: function () {
var data = $.ajax({
url: "getsong.php",
async: false
}).responseText;
var string = data.split('|');
$(this).jPlayer("setMedia", {
mp3: string[0]
}).jPlayer("play");
$('ol#artist').html(string[1]);
$('ol#songname').html(string[2]);
$('ol#filename').html(string[3]);
},
ended: function (event) {
var data = $.ajax({
url: "getsong.php",
async: false
}).responseText;
var string = data.split('|');
$(this).jPlayer("setMedia", {
mp3: string[0]
}).jPlayer("play");
$('ol#artist').html(string[1]);
$('ol#songname').html(string[2]);
$('ol#filename').html(string[3]);
},
swfPath: "js",
supplied: "mp3"
});
});
/////////////////////////////
function checkImage(src) {
var img = new Image();
img.onload = function() {
// code to set the src on success
$('#image-test').css('background', 'url(' + src + ') no-repeat 50% 100%');
};
img.onerror = function() {
// doesn't exist or error loading
//alert('no image');
checkImage('http://mydomain.com/images/no_img_file.jpg');
};
img.src = src; // fires off loading of image
}
//checkImage('http://www.google.com/images/logo_sm.gif');
// uncomment to test error function
checkImage('http://mydomain.com/mp3/'<?php echo $user_id; ?>'/'.string[3]);
答案 0 :(得分:1)
我不会尝试在客户端上执行此检查,而是会建议在服务器端处理它并为自己(和USERS!)节省额外的请求。
最简单的方法(稍后添加你自己的解释逻辑和验证)将是一个名为“coverart.php”的文件,当你试图让封面艺术请求coverart.php时?name = MY_COVER_ART_FILE
然后在coverart.php中:
$strCoverName = $_GET['name'];
$strArtDir = 'YOUR_COVER_ART_DIRECTORY';
$strCommonExtenstion = '.jpg';
$strFile = $strArtDir.$strCoverName.$strCommonExtension;
header('Content-Type: image/jpeg');
if(is_file($strFile)) {
readfile($strFile);
} else {
readfile($strArtDir.'no_img_file'.$strCommonExtension);
}
这是达到你想要的KISS方式,我建议你进一步研究实现这个目标的各种方法,但是沿着类似的方向