Суть проблемы:
Для воспроизведения браузером google chrome из тега <audio> файл формата ogg будет проигран только после полного получения. Если у посетителя интернет со скоростью 128kbps, то файл в 2 мб будет отдаваться достаточно долго.
Но если файл будет очень большого размера, то google chrome делает проигрывание по мере загрузки файла (видимо это не баг, а специально сделано так).
Задача:
Обмануть google chrome с его хитрым алгоритмом.
Казалось бы, поставив content-length большого размера решит проблему. Но google chrome <audio> перед проигрыванием файла делает запрос на проверку всего файла
Заголовок запроса
Range: bytes=2657723-2723029
Заголовок ответа
Content-Length: 2723030
Content-Range: bytes 0-2723029/2723030
(этот запрос хочет получить почти весь файл за исключением начала файла, после полученных 64 кб запрос отменяется, а браузер далее на слово верит, что файл существует целиком, т.е. посути не важно иметь весь контент)
Такое происходит если файл действительно такого размера, но если "подсунуть" мелкий файл в 1 мб и сказать что он 2723030 bytes, то возникает ошибка
HTTP/1.1 416 Requested Range Not Satisfiable («запрашиваемый диапазон не достижим»)
Вопрос:
Как можно перекрыть эту ошибку, и начать отдавать контент?
Такое вообще возможно?