问题描述
我正在尝试3天,以便使 cordova-ios 5.1.1在Cordova 9上正常播放视频。
这个应用程序简而言之应该做什么?
视频已下载到设备存储中,并且可以作为脱机视频播放器从该设备上播放。
我必须首先解决几个问题:
-
由于“ cordova-plugin-file-transfer ”而与Cordova 10不兼容-> https://github.com/apache/cordova-plugin-file-transfer/issues/258
-
尚不能与Cordova 10一起使用,因为建议的在Cordova 10上下载大文件的方法会耗尽设备上的内存,因为先将数据完全加载到内存中
-
使用cdvfile://模式打开本地视频,导致我超时,视频无法开始
-
使用本地服务器插件对我也不起作用
我真的尝试了很多配置和代码来使其正常工作,并在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:">
网络上的文档有些混乱,混合了旧的文件,这些文件显然不再可用。
请记住,我不是在要求您提供有效的代码,但是这个概念仍然有效,并且您确实可以在带有iOS 5.1平台的Cordova 9上使用HTML5-video标签成功地播放设备存储中的巨大视频文件.1。
...但是,当然还是要感谢一些帮助的代码行:-)
感谢您告诉我什么绝对有效,什么不再有效。
解决方法
我能够解决问题。对于所有对此有问题的人来说,这是一个对我有用的解决方案。
基本上我有一个配置错误,与此相关的一些文件名/文件路径问题。
我可以确认该平台和插件可以使用上层概念
: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:">