HTML5 Audio Element "src = get.php не может пропустить позицию

Я использую 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); 

Как я уже сказал, он воспроизводит аудиофайл, но пропуская позицию невозможно. Есть ли этому решение?

спасибо

Solutions Collecting From Web of "HTML5 Audio Element "src = get.php не может пропустить позицию"

Если браузер не имеет файла в кеше, «пропуск» заставляет браузер отправлять новый запрос с заголовком «range» . Ваш PHP-файл должен обрабатывать этот заголовок.

это означает:

  1. получить и проанализировать заголовок диапазона
  2. отвечать на запрос с кодом состояния 206 и соответствующими заголовками диапазонов
  3. вывод только необходимых байтов

Взгляните на этот пост, связанный с сервисом 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);