【发布时间】:2015-01-20 18:23:42
【问题描述】:
我有以下问题:
- 我有一个 iOS Cordova 应用程序。
- 应用程序下载一个 zip 文件并使用以下 Cordova 插件将其解压缩到“cdvfile://localhost/persistent/content/myfolder”中:org.apache.cordova.file-transfer、org.apache.cordova.file和https://github.com/MobileChromeApps/zip.git
- 在 zip 里面有一个“index.html”文件,上面有“视频标签”。
- 我能够成功加载并执行“index.html”文件,但视频无法加载。
我知道视频文件解压成功是因为:
- 我检查了 iPad 中的文件。
-
我通过以下方式将视频嵌入到cordova应用程序(不是下载的应用程序)的索引中,并且可以正常工作:
var videocontainer = document.getElementsByTagName('video')[0]; var videosource = document.getElementsByTagName('source')[0]; var newmp4 = cordova.file.documentsDirectory + 'content/myfolder/videos/myvideo.mp4'; videosource.setAttribute('src', newmp4); videocontainer.load(); videocontainer.play();
但是,视频并未在下载的 HTML 文件中加载/播放。要了解我在做什么,我必须开发一个应用程序,该应用程序将通过从 zip 下载其内容来更新,并且内容包括嵌入了视频的页面。它适用于 PC 和 Android,但不适用于 iOS。
我尝试了以下方法:
- 正在“_self”中加载页面。显示页面,但不显示视频。
- 在 iframe 中加载页面。结果相同。
- 在 inAppBrowser(插件)中加载页面。结果相同。
- 源 src="videos/myvideo.mp4" 的视频标签(适用于 Web 和 Android)。结果相同。
- 源 src="./videos/myvideo.mp4" 的视频标签(适用于 Web 和 Android)。结果相同。
- 源 src=cordova.file.documentsDirectory + 'content/myfolder/videos/myvideo.mp4' 的视频标签(使用 JS,通过在查询字符串中传递路径,与根 index.html 中的路径相同我之前描述过)。结果相同。
- 源 src=cordova.file.documentsDirectory + 'cdvfile://localhost/persistent/content/myfolder/videos/myvideo.mp4' 的视频标签。结果相同。
- 以前的所有东西的组合。结果一样......
在 DIV 中加载下载的资源不是一种选择,因为资源(图像、css、javascript、音频、视频等)是在其他 iOS 设备的文件夹中下载的:应用程序的 Documents 文件夹 (cdvfile://本地主机/持久/)。
我几乎尝试了所有方法...为什么在 html 中播放视频标签并非易事,它们都在应用程序的 Documents 文件夹中???
:-(
编辑 1:Cordova 版本 = 3.6.3
【问题讨论】:
-
尽量对你的问题更精确一点。你在开发什么系统? (Windows Phone、黑莓、Android、iOS,...)?什么设备(平板电脑、手机)?您支持哪些版本(iOS 7.1+,...)?如果可能,请为您下载的压缩文件中的 index.html 文件展示一个示例。也许还有一个文件夹结构,让您的应用了解您想要实现的目标......谢谢
-
正如我在开头所说的“我有一个 iOS Cordova 应用程序”。谢谢
标签: ios cordova video html5-video inappbrowser