Почему мое видео не воспроизводится из кеша во FlutterIOS

Программируем под IOS
Ответить
Гость
 Почему мое видео не воспроизводится из кеша во Flutter

Сообщение Гость »


Я использую Flutter для написания кода своего приложения. Я использую Flutter_cache_manager для кэширования своих видео. Когда я кеширую свои видео, они сохраняются в кеше как файл .bin. Итак, когда я передаю путь к кэшированному видеофайлу для его воспроизведения, он не инициализируется. Хотя он прекрасно работает на Android, он не работает на IOS.

Мой класс кэширования:

класс video_caching_config { Future initVideo(String url) async { пытаться { FinalcacheManager = CacheManager(Config("video_cache", stalePeriod: const Duration(дни: 2, часы: 6), maxNrOfCacheObjects: 100, fileService: LongCacheHttpFileService(),),); окончательный _file = ждут кэшманажер.getFileFromCache("${url}"); если (_file! = ноль) { Печать("Существует"); print("${_file.file.path}"); вернуть _file.file.path; } еще { print("Не существует!"); Final _nFile = await CacheManager(Config("video_cache", stalePeriod: const Duration(дни: 2, часы: 6), maxNrOfCacheObjects: 100, fileService: LongCacheHttpFileService(),),).getSingleFile(url, key: "${ URL}"); print("${_nFile.path}"); вернуть _nFile.path; } } поймать (е) { print("Конфигурация кэширования видео: ${e}"); return «Произошла ошибка! Повторите попытку!»; } } } класс LongCacheHttpFileService расширяет HttpFileService { окончательный http.Client _httpClient; LongCacheHttpFileService({http.Client? httpClient}) :_httpClient = httpClient ?? http.Клиент(); @переопределить Future get(String url, {Map? headers}) async { окончательный запрос = http.Request('GET', Uri.parse(url)); req.headers.addAll(заголовки ?? {}); окончательный httpResponse = ждут _httpClient.send(req); окончательные заголовкиWithCacheControl = Map.from(httpResponse.headers); headersWithCacheControl['cache-control'] = 'max-age=${const Duration(days: 10).inSeconds}'; окончательный ответWithUpdatedHeaders = http.StreamedResponse( httpResponse.stream, httpResponse.statusCode, заголовки: headersWithCacheControl, contentLength: httpResponse.contentLength, запрос: httpResponse.request, ); вернуть HttpGetResponse (responseWithUpdatedHeaders); } } Инициализация видео

String videoPath = await video_caching_config().initVideo(_lVideoUrl); _lVideoPath = VideoPath; контроллер вар = VideoPlayerController.network(videoPath); _videoController = контроллер; если (установлен) { контроллер.инициализация().тогда((_) { контроллер.addListener(_onControllerUpdate); если (установлен) { setState1(() { isVidInit = правда; }); } }); } Могу ли я узнать, что я здесь делаю неправильно или что мне нужно сделать, чтобы все заработало на iOS. Или как я могу сохранить видео с пользовательским расширением?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»