JPlayer - 使用JS帮助用mp3文件名替换图像文件名

时间:2013-12-03 04:37:47

标签: javascript php mysql jplayer

我正在尝试使用以下代码在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]);

1 个答案:

答案 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方式,我建议你进一步研究实现这个目标的各种方法,但是沿着类似的方向