У меня есть приложение iOS, которое загружает видео из Firebase (Cloud Firestore) с помощью канала, похожего на Instagram / TikTok. Тем не менее, я не могу получить доступ к видео, пока пользователь не прокрутит его. Любые советы будут очень полезны. Как TikTok это делает? Сохраняют ли они целую кучу видео в файл в фоновом режиме при загрузке?
Мой текущий VideoDownloadManager:
- Проверяет, загружено ли уже видео во временный кэш или локальный файл, и если not:
- Загружает URL-адрес видео (смотрите downloadURL в Firebase)
- Возвращает URL-адрес видео для немедленного использования (до воспроизведения у него все еще есть некоторая задержка для буферизации)
- Сохраняет URL-адрес видео во временном кэше (в случае, если пользователь прокручивает и прокручивает назад)
- Начинает записывать видео в файл и удаляет видео из временного кэша по завершении
При текущей настройке видео играть эффективно после того, как они загружены. Но если видео еще не загружено, и пользователь прокручивает его, это занимает слишком много времени для (# 1/2), указанного выше, для завершения и буферизации достаточно для воспроизведения. Я уже использую OperationQueues и расставляю приоритеты текущего видео над любыми другими фоновыми видео - но это все еще недостаточно быстро.
Видео TikTok почти всегда легко доступны в процессе прокрутки пользователем. В чем секрет?
Спасибо за помощь!