Cordova 9 ios 5.1.1 - 从存储中播放视频

Cordova 9 ios 5.1.1 - video playback from storage

我正在尝试 3 天,以便在 Cordova 9 上播放 cordova-ios 5.1.1 的视频。

简而言之,这个应用程序应该做什么?

视频已下载到设备存储空间,应该可以作为离线视频播放器从该设备播放。

我首先要解决几个问题:

  • 由于 'cordova-plugin-file-transfer' 与 Cordova 10 不兼容而卡在 Cordova 9 --> 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 标签来播放设备存储中的大量视频文件带有平台 ios 5.1.1.

的 Cordova 9

...但一些有用的代码行当然仍然值得赞赏:-)

谢谢你告诉我什么确实有效,什么无效。

我能够解决问题。这是一个对我有用的解决方案,适用于所有可能遇到此问题的人。

基本上我遇到了配置错误和一些 filename/filepath 问题。

我可以确认上面的概念适用于这个平台和插件:

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"

不要忘记根据 wkwebview 插件将所有设置添加到您的 config.xml。

确保像这样设置下载路径(文档建议使用 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:">