Это действительно ошибка * в Safari (по крайней мере, 12.0.2), которая не может извлечь 300 МБ видео как один запрос от MediaElement.
Они отчаянно пытаютсясделайте запрос Range, но ваш хост не разрешает такие запросы.Вы можете увидеть это, пытаясь найти видео, пока оно не загружено полностью в других браузерах.
Вы можете обойти эту проблему, либо
- Установив сервер так, чтобы он принимал запросы Range(это было бы лучшим решением даже для других браузеров).
- При ошибке извлеките весь файл через AJAX и воспроизведите его из памяти (как BLOB-объект).Но это означает ожидание загрузки 400 МБ.
- В случае ошибки извлеките файл и направьте ReadableStream в MediaSource ' SourceBuffer используя метод
appendStream()
.Но ни один браузер пока не поддерживает его ...
* Хотя я нашел эту ссылку , в которой говорится, что " HTTP-серверы, на которых размещены медиафайлы для iOS, должны поддерживать байт-range запросов", так что это для iOS, но они, вероятно, имеют те же ограничения для рабочего стола.Но то, что они не поддерживают запросы вне диапазона, все равно звучит как ошибка, поскольку это идет вразрез со спецификациями.