首页 文章

Cordova iOS:使用下载的html和视频文件加载视频

提问于
浏览
0

我有以下问题:

  • 我有一个iOS Cordova应用程序 .

  • 应用程序通过使用以下Cordova插件下载zip文件并在"cdvfile://localhost/persistent/content/myfolder"中解压缩:org.apache.cordova.file-transfer,org.apache.cordova.file和https://github.com/MobileChromeApps/zip.git

  • 在zip中有一个"index.html"文件,上面有"video tags" .

  • 我能够成功加载并执行"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文件中加载/播放 . 为了理解我在做什么,我必须开发一个应用程序,通过从拉链下载其内容来更新,内容包括嵌入了视频的页面 . 它适用于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,javascripts,音频,视频等)都下载到其他iOS设备的文件夹中:应用程序的Documents'文件夹(cdvfile:// localhost / persistent /) .

我尝试了几乎所有的东西......为什么在html中播放视频标签并不是一件容易的事,这些视频标签都在应用程序的Documents'文件夹中?

:-(

编辑1:科尔多瓦版本= 3.6.3

2 回答

  • 0

    Solution Founded!!

    在几乎所有的android和iOS示例中,下载的内容都是从 "cordova.file.documentsDirectory" 执行的 .

    然后,当您在a或(通过使用AJAX)链接此内容时,一切正常(CSS,图像,链接),但媒体标签(和) .

    同样,我不知道为什么,但几乎所有的例子都使用这个路径下载和解压缩内容 .

    经过几天被这个问题阻止(我发现很多论坛,开发者必须通过使用Cordova Media,jaeger25 Html5Video等插件修改所有项目),我尝试使用以下路径: "cordova.file.dataDirectory"

    我从这个路径下载,解压缩并执行HTML,并且没有对HTML文件进行解析/修改(在我的例子中是数千个) . 100% compability with and tags with relative sources' path in an IFRAME!!!!!!

  • 5

    我猜您将视频链接编码到您在设备上解压缩的zip中的index.html .

    这些链接需要通过一些javascript解析器“更新”,然后才能在phonegap应用中实际加载或导航到此页面 .

    如果您的示例是在Android中引起的,那么您肯定需要在此处包含HTML5视频插件:

    https://github.com/jaeger25/Html5Video

    在iOS上,该标记适用于本地文件 . 但链接必须是绝对的 .

    如果您重新编译应用程序或重新安装它,链接将会更改 . 这些文件可用,但APP ID也会改变,绝对路径也会改变 .

    iOS路径示例:

    /var/mobile/Applications/<application UUID>/Documents/path/to/file
    

    希望你解决了你的问题 .

相关问题