Я импортировал эту библиотеку в плагин Flutter, о котором вы упоминали, и смог успешно загрузить видео с действительного URL-адреса Firebase. Я добавил некоторые записи через mediaDownloader: didReceiveData: в классе VIResourceLoadingRequestWorker и похоже, что кэширование происходит правильно.
Обновлен initWithURL: frameUpdater: метод, теперь он выглядит так:
- (instancetype)initWithURL:(NSURL*)url frameUpdater:(FLTFrameUpdater*)frameUpdater
{
VIResourceLoaderManager* resourceLoaderManager = [[VIResourceLoaderManager alloc] init];
// Uncomment this to test with an empty cache, so the manager will re-cache
// [resourceLoaderManager cleanCache];
AVPlayerItem* item = [resourceLoaderManager playerItemWithURL:url];
self = [self initWithPlayerItem:item frameUpdater:frameUpdater];
if (self)
{
self.resourceLoaderManager = resourceLoaderManager;
self.resourceLoaderManager.delegate = self;
}
return self;
}
- Посмотрите, может ли вышеперечисленные изменения работать на вас, но кажется, что это может быть что-то еще.
- Попробуйте свой код с более простым тестовым URL-адресом откуда-нибудь и посмотрите, действительно ли это что-то делать с реальным URL (сомнительно, так как у меня был успех с другим видео URL Firebase, и вы сказали, что ваш определенно работает в браузере)
- Добавьте тег для Flutter к вашему вопросу, чтобы кто-то, более знакомый с этой технологией, мог увидеть это и быть в состоянии помочь.