#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:">