Заголовки http для отправки файла в html5 <audio> - PullRequest
0 голосов
/ 12 октября 2009

Я хочу использовать новый тег html5 для воспроизведения файла WAV (в настоящее время поддерживается только в FF.)

https://developer.mozilla.org/En/HTML/Element/Audio

Я использую команду php readfile, чтобы получить файл wav с жесткого диска и записать его в ответ http.

Но это не работает. Аудио-виджет в Firefox просто постоянно загружает анимацию загрузки.

Тег, кажется, в порядке, так как я могу добавить другой URL в его src / source, и он работает нормально. Я могу использовать тег, и он загружает файл, и он воспроизводится с использованием Quicktime нормально.

Так что я думаю, возможно, один / все заголовки контента.

Используя расширение FF httpfox, я вижу, что эти заголовки ответов поступают с сервера:

(Status-Line)   HTTP/1.1 200 OK
Date    Mon, 12 Oct 2009 03:04:33 GMT
Server  securesauce
Cache-Control   private
Expires Mon, 26 Jul 1997 05:00:00 GMT
Pragma  private
Vary    Accept-Encoding
Content-Encoding    gzip
Content-Length  8217
Keep-Alive  timeout=15, max=100
Connection  Keep-Alive
Content-Type    audio/x-wav

Так что все выглядит так, как я ожидал. Единственные заголовки, которые я явно устанавливаю в скрипте (другие установлены в другом месте приложения):

Cache-Control   private
Pragma  private
Content-Type    audio/x-wav

Когда я пробовал другой wav-файл (случайный из интернета), httpfox не отображал заголовки ответа.

Поскольку это php-файл, отправляющий содержимое, я не могу просто отправить заголовки, так как я должен хотя бы отправить тип содержимого.

Есть идеи?

Источник выдержки:

header('Cache-Control: private');
header('Pragma: private');
header("Content-Type: $contentType");
readfile($filepath);
exit;

Ответы [ 4 ]

4 голосов
/ 17 октября 2009

Какие форматы и типы MIME поддерживаются Mozilla, документировано на их вики . Не похоже, что MIME-тип - это ваша проблема, но вполне возможно, что этот WAVE-файл не использует обычный звук PCM, который поддерживает Firefox. WAVE может фактически содержать другие форматы, такие как ADPCM, MP3 и еще много чего. Они могут поддерживаться QuickTime, но нет гарантии, что он будет воспроизводиться в браузере HTML5. Чтобы быть уверенным, попробуйте открыть файл в аудио редакторе и снова сохранить его как файл WAVE PCM.

1 голос
/ 11 сентября 2013

Тебе не хватает X-Content-Duration. Клиенту необходимо точно выполнять поиск во время воспроизведения, а некоторые клиенты отказываются от медиаконтента, если продолжительность не указана. Также включите Content-Duration, который медленно заменяет X-Content-Duration.

Вот еще немного информации: Настройка веб-серверов для видео и аудио Ogg HTML5

Кроме того, я бы не использовал gzip или шифрование на вашем выходе.

0 голосов
/ 30 октября 2009

У меня была такая же проблема при отправке аудиофайла ogg с использованием php. Игра с заголовками не помогла.

Затем я обновился с Firefox 3.5.2 до 3.5.4 - это решило проблему.

0 голосов
/ 12 октября 2009

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

...