Я использую HTML5 AudioElement для воспроизведения своих файлов .mp3, но я заметил, что нельзя пропустить позицию. Я извлекаю файл через PHP извне www root.
Я использую HTML-код:
<audio src="" controls id="appAudio" style="width:1000px;margin-top:10px"></audio>
Код JavaScript:
document.getElementById('appAudio').src= 'http://localhost/index.php/player/get_audio_via_php/1';
PHP-код:
$file = "/myfolder/1.mp3"; header('Content-Type: audio/mpeg'); header('Content-Length: ' . filesize($file)); return file_get_contents($file);
Как я уже сказал, он воспроизводит аудиофайл, но пропуская позицию невозможно. Есть ли этому решение?
спасибо
Если браузер не имеет файла в кеше, «пропуск» заставляет браузер отправлять новый запрос с заголовком «range» . Ваш PHP-файл должен обрабатывать этот заголовок.
это означает:
Взгляните на этот пост, связанный с сервисом mp3-файлов через php .
Ответ предлагает изменить тип содержимого, чтобы включить несколько типов:
header("Content-Transfer-Encoding: binary"); header("Content-Type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3");
Старый вопрос … Я использовал это, похоже, работает на Chrome.
header("Content-Transfer-Encoding: binary"); header("Content-Type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3"); header('Content-Disposition:: inline; filename="'.$audio->filename.'"'); header('Content-length: '.$fileSize); header('Cache-Control: no-cache'); header('Accept-Ranges: bytes'); readfile($filepath);