Cordova 9 ios 5.1.1 — воспроизведение видео из хранилища

#ios #file #cordova #video

#iOS #файл #кордова #Видео

Вопрос:

Я пытаюсь в течение 3 дней заставить работать воспроизведение видео для cordova-ios 5.1.1 на Cordova 9.

Что, вкратце, должно делать это приложение?

Видео загружается в хранилище устройства и должно воспроизводиться с этого устройства в качестве автономного видеоплеера.

Сначала мне пришлось разобраться с несколькими проблемами:

  • Застрял в Cordova 9 из-за ‘cordova-plugin-file-transfer‘, который еще не совместим с Cordova 10 -> https://github.com/apache/cordova-plugin-file-transfer/issues/258

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

  • использование cdvfile: // schema для открытия локального видео дает мне тайм-аут, видео не запускается

  • использование плагина локального сервера у меня тоже не сработало

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

Это плагины, которые я пробовал для рабочей концепции автономного видеоплеера:

https://github.com/apache/cordova-plugin-wkwebview-engine

https://github.com/oracle/cordova-plugin-wkwebview-file-xhr

https://github.com/TheMattRay/cordova-plugin-wkwebviewxhrfix

https://github.com/floatinghotpot/cordova-httpd

https://github.com/communico/cordova-httpd

https://github.com/nchutchind/cordova-plugin-streaming-media

Это моя политика безопасности контента:

 <meta http-equiv="Content-Security-Policy" content="default-src * 'self' 'unsafe-inline' 
'unsafe-eval' cdvfile: data: gap: content: blob:">
  

Документация по этому вопросу в Интернете немного сбивает с толку, смешивая старые материалы, которые, по-видимому, больше не работают.

Пожалуйста, имейте в виду, что я не прошу у вас рабочий код, но концепция, которая все еще работает, и вы успешно использовали для воспроизведения огромных видеофайлов из хранилища устройства с использованием тега HTML5-video на Cordova 9 с платформой ios 5.1.1.

… но некоторые вспомогательные кодовые строки, конечно, все еще приветствуются 🙂

Спасибо, что рассказали мне, что определенно работает, а что больше нет.

Ответ №1:

Я смог решить проблему. Вот решение, которое сработало для меня, для всех людей, у которых могут возникнуть проблемы с этим.

В основном у меня была ошибка конфигурации и некоторые проблемы с именем файла / filepath из-за этого.

Я могу подтвердить, что концепция upper работает с этой платформой и плагинами:

 Cordova 9 @ ios 5.1.1

cordova-plugin-file-transfer 1.7.1 "File Transfer"
cordova-plugin-streaming-media 2.3.0 "StreamingMedia"
cordova-plugin-wkwebview-engine 1.2.1 "Cordova WKWebView Engine"
cordova-plugin-wkwebview-file-xhr 2.1.4 "Cordova WKWebView File XHR Plugin"
  

Не забудьте добавить все настройки в свой config.xml в соответствии с плагином wkwebview.

Обязательно укажите путь загрузки следующим образом (в документации предлагается использовать cdvfile://)

 fileTransfer.download(encodeURI(url), cordova.file.dataDirectory   '/'   filename,...
  

Воспроизведение видео происходит следующим образом:

 window.plugins.streamingMedia.playVideo(cordova.file.dataDirectory   "/"   filename, options)
  

Политика безопасности контента выглядит следующим образом:

 <meta http-equiv="Content-Security-Policy" content="default-src * 'self' 'unsafe-inline' 'unsafe-eval' data: gap: content:">