我相信 jPlayer 音频播放器中存在一个错误,如果歌曲文件由 PHP 文件输出,则该错误会阻止用户使用搜索栏浏览歌曲。在我的 htaccess 文件中,我有这一行:
RewriteRule ^stream/(.*)/([0-9+]).mp3?$ modules/stream.php?a1=$1&a2=$2
然后在我的 stream.php 文件中,这是我设置的标头数据:
$fsize = filesize($path);
$shortlen = $fsize-1;
header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false); // required for certain browsers
header("Content-Type: audio/mpeg");
header("Content-Disposition: inline; filename=" . $file . ";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . $fsize);
header('Content-Range: bytes 0-'.$shortlen.'/'.$fsize);
header('X-Pad: avoid browser bug');
header("Content-Length: " . filesize($path));
readfile("$path");
exit();
mp3 的链接通常如下所示:
www.website.com/stream/song/100/
一切似乎都在 jPlayer 中工作,除了用搜索栏导航歌曲。当我将 URL 更改为 mp3 的直接路径时,搜索栏再次开始工作。有谁知道我该如何解决这个问题?
编辑:Mac OSX 10.8 上的 Safari v6 中不会出现该问题。它确实发生在 Chrome v27 上