У меня есть сайт для оркестра, на который я работаю. У меня есть полнофункциональный раздел с логином. У меня есть папка .htaccess, которая защищает мои mp3 от горячей / прямой ссылки. Я могу получить файлы для воспроизведения в Safari, Chrome и Firefox, но не на своем iPhone!
Я передаю содержимое с помощью заголовков в php-файле, которые, в свою очередь, создают звуковой тег html5 для обслуживания содержимого. Я пробовал readfile () в php безуспешно.
php файл ниже: (минус проверка безопасности)
$_GET['f'] = "privatefolder/" . $_GET['f'];
$filename = $_GET['f'];
$filesize = @filesize($filename);
$len = strlen( $filename );
$shortlen = $length - 1;
header( 'Content-Range: bytes 0-'.$shortlen.'/'.$len);
header("Last-Modified: ".filemtime($filename));
header("Content-Transfer-Encoding: binary");
header("Content-Type: audio/mpeg");//mpeg
header("Etag: W5M0MpCehiHzreSzNTczkc9d");
header("Content-Description: {$filename}");
header("Content-length: {$filesize}");
header("Content-Disposition: filename=button.mp3");
header("X-Pad: avoid browser bug");
header("Cache-Control: no-cache");
header("Connection: close");
echo "<audio controls='controls'><source src='".file_get_contents($_GET['f'])."' type='audio/mp3' /></audio>";
exit;
Этот код хорошо работает во всех основных браузерах, но на моем iPhone Mobile Safari блокируется и вылетает при попытке открыть страницу!
Чего мне не хватает? Я предполагаю, что это проблема заголовка и способ быстрой загрузки / потоковой передачи. Я боролся с этим в течение 2 недель, пробовал каждое решение, которое смог найти! Помогите пожалуйста !!!
* только примечание: я открыл страницу в браузере Opera Mini, и она отправляет ссылку на safari и быстро воспроизводит ее без проблем?!?!? так что я знаю, что это возможно!