Я использую soundmanager2, и у меня есть проблема с Safari.Ошибка Soundmanager2, Safari и PHP
Я успешно потоковый защищенные файлы (за пределами корневой директории) из PHP в Soundmanager2, используя что-то вроде этого:
//check if user is logged in and has rights on $file
//if yes stream file
if (file_exists($file)) {
$filepath = $file;
$filesize = filesize($filepath);
header("Pragma: no-cache");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header('Content-Disposition: attachment;filename="'.$filename.'"');
header("Content-Transfer-Encoding: binary");
header('Content-Type: audio/mpeg');
header('Content-Length: '.$filesize);
@readfile($filepath);
exit(0);
}
Это прекрасно работает на Firefox и Chrome, mp3-файлы играют, но в Safari I получить:
soundmanager2.js:1190basicMP3Sound0: Using HTML5
soundmanager2.js:1190basicMP3Sound0: play(): Attempting to load
soundmanager2.js:1190basicMP3Sound0: load (/privateaccess/index/1415)
soundmanager2.js:1190basicMP3Sound0: waiting
soundmanager2.js:1190basicMP3Sound0: loadstart
soundmanager2.js:1190basicMP3Sound0: loadedmetadata
soundmanager2.js:1190basicMP3Sound0: HTML5 error, code 3
soundmanager2.js:1188basicMP3Sound0: Failed to load/invalid sound? Zero-length duration reported. (/privateaccess/index/1415)
я только получает эту ошибку, когда я поток файла с PHP, он работает с файлами, которые находятся в корневой директории (поставляется по апачу вместо PHP).
Если я попал прямо на сайт www.myurl.com/privateaccess/index/1415, файл загрузился, так что это действительно похоже на проблему между Safari, Soundmanager2 и потоковой передачей файлов PHP.
Кто-нибудь? идея исправить/обмануть это?
Спасибо за этот ответ. Не знаю, как я пропустил это на своем сайте, но, к счастью, вы добавили соответствующую ссылку здесь. – Zoidberg