在html5 phonegap上加载视频失败

时间:2013-09-25 14:32:08

标签: android html5 video cordova

我想通过phonegap android上的HTML5视频标签显示本地视频 这个HTML代码有什么问题?:

<video controls width="300" height="300">
 <source src="file:///android_asset/www/data/video.m4v">
 <source src="file:///android_asset/www/data/video.webm">
</video>

它不起作用,视频无法播放。

它也不起作用:

<video controls width="300" height="300"><source src="data/video.m4v"><source src="data/video.webm"></video>

但是当我从远程服务器加载视频时效果很好(我从服务器加载相同的视频文件):

<video controls width="300" height="300">
     <source src="http://192.168.1.140/video.m4v">
     <source src="http://192.168.1.140/video.webm">
</video>

我构建它并在Android上运行。

3 个答案:

答案 0 :(得分:4)

我找到另一种方法来获取android中的路径。将视频放在“res”文件夹中,并将视频播放器src设置为“android.resource://your.package.name/raw/videofilename”。不要放视频扩展名。 在IOS中,您可以将其放在assets文件夹中,并将其作为“foldername / videoName.mp4”访问。虽然这是旧的帖子,但我希望它会对某人有所帮助。

注意:“raw”是“res”文件夹中的文件夹名称,我曾经将视频文件保存在Android中。

答案 1 :(得分:0)

视频文件是您应用的一部分吗?如果是这样,你的src字符串是错误的。将src基于您在应用程序的根文件夹中的位置。因此,如果您有root(index.html文件所在的位置),那么视频就是您的视频文件,您可以使用<source src="videos/video.m4v">

编辑:

试试这个:

<video width="320" height="240" controls>
    <source src="data/video.webm" type="video/webm">
    Your browser does not support the video tag.
</video>

注意:从我所看到的m4v不是支持的视频格式。仅支持mp4,ogg和webm。另外,请添加“您的浏览器不支持视频标记”。以查看您的设备上是否存在支持问题。

答案 2 :(得分:0)

为您的应用创建一个文件夹并将视频保存在那里。让我们说APP_FOLDER_是该文件夹的理想名称; APPLICATION_WORKING_DIR_是根目录的全局引用,vid是视频的名称:

/*code to create the app's folder*/
var onFileSystemRequestSuccess = function(fs) {
    //success fn create dir
    var onDirCreateSuccess = function(dir) {
        //fs instance pointing to root dir
        APPLICATION_WORKING_DIR_ = dir;
    };
    //fail fn
    var onDirCreateFail = function(err) {
        //manage error
    };
    fs.root.getDirectory(APP_FOLDER_, { create: true, exclusive: false }, onDirCreateSuccess, onDirCreateFail);
};
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemRequestSuccess, function () { });

然后,只需将视频标记的src指向:

/*code to set src of video tag*/
//additional: check if APPLICATION_WORKING_DIR_.fullpath ends with "/" and create the path to video
var str_path = (APPLICATION_WORKING_DIR_.fullPath.toString().endsWith('/') ? APPLICATION_WORKING_DIR_.fullPath : APPLICATION_WORKING_DIR_.fullPath + '/') + vid;
document.getElementById('video_tag_name').src = str_path;

最后,点击元素将开始播放。

希望这有帮助。