Воспроизведение аудио в браузере завершается неудачно, если в заголовках http не заданы значения Accept-Ranges;ЗАЧЕМ? - PullRequest
4 голосов
/ 11 сентября 2011

Я недавно обнаружил что-то (что меня удивляет) при открытии аудиофайла в Firefox или Chrome.Если я не укажу заголовок ответа HTTP «Accept-Ranges: bytes», firefox не сможет определить длину ogg-файла (в секундах) до достижения конца воспроизведения.Chrome определит длину файла ogg (в секундах), но аудиопроигрыватель аварийно завершит работу, когда достигнет конца, и не сможет повторно воспроизвести файл после сбоя.Другие браузеры не были протестированы.

Рабочие заголовки ответа Http:

HTTP/1.1 200 OK
Accept-Ranges: bytes
Content-Type: application/ogg
Content-Length: 245646

Неудачные заголовки ответа Http:

HTTP/1.1 200 OK
Content-Type: application/ogg
Content-Length: 245646

Это странно для меня, потому что яне используя диапазоны частичного содержания.Моя серверная реализация даже не поддерживает их (поэтому я думаю, что мой сервер может лежать, когда он говорит «Accept-Ranges: bytes»).Я конечно не понимаю, почему этот заголовок должен быть необходим для воспроизведения в браузере.Есть ли в обоих браузерах ошибки, которые появляются, когда я не устанавливаю заголовок Accept-Ranges?Это кажется мне маловероятным.Кто-нибудь может объяснить?

Спасибо!

1 Ответ

0 голосов
/ 11 сентября 2011

Не уверен, что это ошибка или просто искаженная интерпретация стандарта - раздел 14.5 .Стандарт гласит, что МОЖЕТ, а не ДОЛЖЕН ...

OTOH. Может быть, для возможности использования аудиопотока и / или поиска и т. Д. Реализованным модулям воспроизведения аудио необходим этот заголовок ... вы можете попробоватьчто произойдет, если вы отправите «Accept-Ranges: none» ... если они немного соответствуют http 1.1, чем это просто работает ...

...