Частичная загрузка файла mp4 с нераспознанной ошибкой rn-fetch-blob, response-native-video - PullRequest
0 голосов
/ 05 мая 2019

Я пытаюсь внедрить локальное кэширование видео в мое приложение для потоковой передачи видео.

Я использую:

  • реагировать-нативно-видео для воспроизведения видео
  • rn-fetch-blob для загрузки файлов

Мне удалось начать загрузку в начале, заменить исходный URL-адрес налокальный и продолжить воспроизведение из моего локального файла (он работает как положено) - даже с частичным файлом (пока я начинаю с 0).

Основная проблема - функция поиска .Если пользователь хочет начать просмотр, например, с 120 секунд - загрузка все равно начнется с 0B.Я реализовал Range header в Fetch API, который выглядел примерно так:

"Range": "bytes: {oneSecondInBytes * whereYouWantToStartWatchingInSeconds}-{fileSizeInBytes}"

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

Загрузка работает нормально, но при воспроизведении видео выдается ошибка Unrecognized media format.Также попытался добавить несколько байтов для заголовков в начале (0-10000B) - чтобы попытаться распознать видеофайл, не повезло.

Поэтому мне интересно, если возможно реализовать частичную загрузку видеофайлас помощью rn-fetch-blob и иметь возможность воспроизводить файл с помощью response-native-video (не начиная с начала файла) , позже также добавьте другие фрагменты в файл (пока не завершится полная загрузка),Как я могу убедить ответное нативное видео в том, что моя частичная загрузка действительно является правильным файлом mp4?

ОБНОВЛЕНИЕ

Я некоторое время возился с заголовками HTTP GETи на самом деле получил где-то.Не полное решение, но может помочь кому-то:

"Content-Type": "video/mp4",
"Range": `bytes=0-1000, 45111150-`,
"Accept-Ranges": "bytes",
"Content-Length": "89024062"

^^ это мои тестовые заголовки.Пришлось добавить два значения в Range.Первый просто загружает первую часть файла, чтобы получить заголовки и распознать тип файла.Второй - от "точки поиска".Теперь видео воспроизводится и тип файла распознается.

...