我一直在使用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
使这种配置有点独特的一些事情:
jwplayer代码是动态加载的,即当用户点击其中一个“箭头”图标时,jwplayer代码通过javascript加载并开始播放,因为“autostart”设置为true。
< / LI>因为mp3文件位于目录根目录之上,所以“file”参数实际上是一个实际下载文件的PHP函数。
以下是动态加载的代码:
<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;
答案 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以后。这是我能想到它突然无法工作的唯一原因。