У меня проблемы с jPlayer. Звук воспроизводится нормально в последней версии Safari на Lion, но я не могу заставить его работать в Safari 5.0.6.
У меня аудио находится за пределами httpdocs для безопасности, поэтому я реализовал скрипт для загрузки аудио.
function playSong(id,title){
$("#jquery_jplayer").jPlayer("setMedia", { mp3: "/download.php?id=" + id });
$("#jp_container .track-name").text(title);
$("#jquery_jplayer").jPlayer("play", 0);
}
Download.php в настоящее время выглядит следующим образом, и это решение, которое я нашел от другого пользователя в stackoverflow.
// array of support file types for download script and there mimetype
$mimeTypes = array(
'doc' => 'application/msword',
'pdf' => 'application/pdf',
'mp3' => 'audio/mpeg'
);
// set the file here (best of using a $_GET[])
$file = "../song_files/mp3/$_GET[id].mp3";
// gets the extension of the file to be loaded for searching array above
$ext = explode('.', $file);
$ext = end($ext);
// gets the file name to send to the browser to force download of file
$fileName = explode("/", $file);
$fileName = end($fileName);
$fsize = filesize($file);
// opens the file for reading and sends headers to browser
$fp = fopen($file,"r") ;
header("Content-Type: ".$mimeTypes[$ext]);
header('Content-Disposition: attachment; filename="'.$fileName.'"');
header('Accept-Ranges: bytes');
header('Content-Range: bytes');
header("Content-Length: ".$fsize);
// reads file and send the raw code to browser
while (! feof($fp)) {
$buff = fread($fp,4096);
echo $buff;
}
// closes file after whe have finished reading it
fclose($fp);
Я понимаю, что это может быть связано с отправляемыми мной заголовками, и более старая версия Safari не обрабатывает их правильно, однако я могу успешно загрузить файл, если захожу на download.php? Id = 1 .
Любая идея, как я могу видеть, что делает jPlayer, т.е. возвращает ошибку, например, не удается найти файл? Если кто-то может указать мне правильное направление, это будет оценено.