本地视频文件在Cordova Android App中无法播放

时间:2014-04-21 19:13:42

标签: android html5 video cordova

我在Cordova中构建应用,其中应用的第一页包含设置为自动播放的视频标记。加载文件时我没有收到任何404错误...该文件刚刚赢了。视频只是黑色,0:00时间长度不会改变。

奇怪的是,我在视频文件的Chrome远程开发工具中收到了两个网络请求:第一个显示(成功)状态,第二个状态为(已取消)。我尝试过为文件使用两个不同的网址:

file:///android_asset/www/video/nameofmyvideo.mp4,视频文件实际位于/www/video/nameofmyvideo.mp4。

android.resource:// mypackagename / raw / nameofmyvideo,视频文件实际位于/ www / res / raw / nameofmyvideo和/ platforms / android / res / raw / nameofmyvideo

我正在运行最新的cordova(3.4.1-0.1.0)并在运行CM-11(4.4.2)的点火器上进行测试。

这是我使用的标记:

<video width="400px" height="300px" autoplay controls>
    <source src="file:///android_asset/www/video/video-test.mp4" type="video/mp4">
</video>

OR

<video width="400px" height="300px" autoplay controls>
    <source src="android.resource://my.package.name/raw/videotest" type="video/mp4">
</video>

这是一个Android路径问题吗?该应用程序在iOS中运行良好。我也尝试过使用webm,但没有成功。

编辑:

似乎无论文件是否可以实际加载,都会发生双网络加载问题(一次成功,一次取消)。我在我的网站上托管的http上加载了相同的mp4文件,视频播放得很好(但仍然显示了两个请求)。

4 个答案:

答案 0 :(得分:2)

无法从android上的内部资源文件夹中读取视频,您需要将它放在app,sdcard或远程以外的某个地方。 这是因为APK基本上是压缩JAR,资产中的文件需要解压缩才能工作,Android无法解压缩APK中的视频文件。

答案 1 :(得分:0)

应该是autoplay而不是autoplay=""controls而不是controls=""。并移除pxwidth="400" height="300"

答案 2 :(得分:0)

也许尝试在视频标记上添加load

<video width="400px" height="300px" autoplay controls onklcik="~videoClicked(this)">
    <source src="file:///android_asset/www/video/video-test.mp4" type="video/mp4">
</video>

  //somewhere in your scripts
  videoClicked function(elem) {
      $(elem).load();
  }

答案 3 :(得分:0)

如果有人需要它,你可以嵌入代码下面。我已经尝试过了,它在android和ios都有效。

<object CLASSID="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" width="100%" CODEBASE="http://www.apple.com/qtactivex/qtplugin.cab">
                                <param name="src" value="{{filename}}">
                                <param name="qtsrc" value="{{filename}}">
                                <param name="autoplay" value="false">
                                <param name="loop" value="false">
                                <param name="controller" value="true">
                                <embed src="{{filename}}" qtsrc="{{filename}}" width="100%" autoplay="true" loop="false" controller="true" pluginspage="http://www.apple.com/quicktime/"></embed>
                            </object>