JW Player停止在Chrome,Safari和IE9中工作,但在Firefox中运行

时间:2013-07-25 17:27:27

标签: mime-types html5-audio jwplayer

我一直在使用JW Player 5.7在客户的网站上播放音频mp3文件超过一年没有问题。我的客户刚接到一个电话,声音没有播放。音频不再在Chrome(v28),Safari(v5和v6)和IE9中播放。它的工作原理与Firefox(v23)一样。我不知道它何时停止工作,因为我的客户和我通常都使用Firefox。我不知道它是否与浏览器或其他内容有关。

最突出的一点是,使用开发人员工具,似乎Firefox(audio / mpeg3)中的内容类型标题是正确的,但Chrome,Safari和IE9的内容类型标题设置为“text / html”。

以下是指向您可以查看问题的网页的链接: http://www.thebuzzmusiclibrary.com/music/display_album/20

使这种配置有点独特的一些事情:

  1. jwplayer代码是动态加载的,即当用户点击其中一个“箭头”图标时,jwplayer代码通过javascript加载并开始播放,因为“autostart”设置为true。

    < / LI>
  2. 因为mp3文件位于目录根目录之上,所以“file”参数实际上是一个实际下载文件的PHP函数。

  3. 以下是动态加载的代码:

    <div id="mediaplayer">This text will be replaced</div>
    
    <script type="text/javascript">
    jwplayer("mediaplayer").setup({
    "file": "' + file + '",
    "controlbar": "bottom",
    "width": "220",
    "height": "24",
    "provider": "sound",
    "autostart": "true",
    "bufferlength": "2",
    "modes": [ {type: "flash", src: "/js/player-licensed-5.7.swf"}, {type: "html5"}, {type: "download"} ]
    

    });     

    以下是下载mp3文件的PHP脚本的主要部分($ mime是'audio / mpeg3')

    header('Content-Type: '.$mime);
    header('Content-Disposition: attachment; filename="'.$name.'"');
    header('Content-Description: File Transfer');
    header('Content-Length: '.$info['size']);
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    
    while( ! feof($file))
    {
        echo fread($file, 2048);
    }
    
    static::close_file($file, $area);
    
    exit;
    

2 个答案:

答案 0 :(得分:1)

一个问题可能是audio/mpeg3不是标准的mime类型。您应该根据RFC 3003使用audio/mpeg

  

在MPEG-1和MPEG-2标准中定义为第I层,第II层和第III层的音频压缩是一种以低质量损失压缩音频的流行方法。 [...] mime类型 audio / mpeg 根据MPEG-1和MPEG-2定义包含MPEG帧的基本字节流,可能散布非MPEG数据。

答案 1 :(得分:0)

我会更新到5.10 - http://www.longtailvideo.com/order/view,也许有一些浏览器更新发生在5.7以后。这是我能想到它突然无法工作的唯一原因。