首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在phonegap应用程序上下载和播放视频

在phonegap应用程序上下载和播放视频
EN

Stack Overflow用户
提问于 2014-12-15 16:03:35
回答 1查看 703关注 0票数 1

我正在尝试下载并存储视频到一个本地设备(目前是一个Galaxy S5),然后使用HTML5视频标记播放它们。

但是,当我试图将它们存储到应用程序文件目录中时,文件不会被保存(即使是通过我将一个FileEntry对象返回到成功回调)。

我的代码如下:

代码语言:javascript
复制
                        fileurl = "http://timelivingapp.absolute-staging.co.uk/src/branches/cms/public/uploads/1418656353chrome.mp4";
                        filename = fileurl.split("/");
                        filename = filename[filename.length - 1];
                        dataTool.ticker.addRequest();
                        fileTransfer = new FileTransfer();
                        fileTransfer.download(fileurl,"cdvfile://localhost/files/" + filename,
                        function(fe){
                            alert("ok");
                            alert(fe.toURL());
                            console.log(fe);
                            dataTool.ticker.addResponse();
                        },
                        function(err){
                            alert("There was an error downloading "+err.source+" to "+err.target+"");
                        },true);

如果我用cdv file://localhost/files代替cdv file://localhost/persistent,那么它确实会下载它们,但是它会直接存储在文件系统上的/Android/目录中,而不是存储在应用程序本身中,这太可怕了(当然,考虑到会有500+图像和视频被下载!)

无论哪种方式,我都会尝试绘制一个视频标记,而视频不会使用以下方式加载:

代码语言:javascript
复制
    document.getElementById("appBody").innerHTML = "<video  id='vidPanel' style='width:400px;height:400px;'><source src='cdvfile://localhost/persistent/1418656353chrome.mp4' type='video/mp4'></video>";

调用它时,会绘制视频标记,但是对于一个损坏的视频映像(上面的内容是在我使用persistent进行测试的时候,但是即使在文件下载(我可以在我的文件系统中看到它)时,它仍然不会播放。

也尝试使用“本机”URL,但也失败了:

代码语言:javascript
复制
  document.getElementById("appBody").innerHTML = "<video  id='vidPanel' style='width:400px;height:400px;'><source src='file:///storage/emulated/0/1418656353chrome.mp4' type='video/mp4'></video>";

任何想法都将不胜感激!!

EN

回答 1

Stack Overflow用户

发布于 2016-07-12 09:43:59

看起来文件目标是不正确的。这里有用于FileTransfer的Android文档。https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/

Android文件系统

我也遇到了类似的问题,这里有我的问题,可以下载和播放视频:不能用Phonegap应用在IOS 9中播放本地视频

写文件:

代码语言:javascript
复制
 var uri = encodeURI(file.url);
        var fileTransfer = new FileTransfer();
        // var fileLocation = cordova.file.applicationStorageDirectory +
        //     '/Documents/' + file.folder + '/' + file.fileName;

        var fileLocation = cordova.file.dataDirectory + file.fileName;

        var deferred = $q.defer();
        fileTransfer.headers = {
            Connection: "close"
        };

        fileTransfer.download(uri, fileLocation, function(result) {
            console.log("Fichero descargado: " + JSON.stringify(result));
            deferred.resolve(result);
        }, function(error) {
            deferred.reject(error);
        });
        return deferred.promise;

阅读:

代码语言:javascript
复制
var deferred = $q.defer();

    var nativePath = cordova.file.dataDirectory + nombreFichero + "." + extension;

    resolveLocalFileSystemURL(nativePath, function(entry) {
        //deferred.resolve(entry.nativeURL);
        console.log("Fichero native: " + entry.toNativeURL());
        console.log("Fichero fullPath: " + entry.fullPath);
        console.log("Fichero toUrl: " + entry.toURL());
        console.log("Fichero toInternalURL: " + entry.toInternalURL());

        deferred.resolve(entry.toURL());
    }, function(error) {
        console.log("Error al leer el fichero: " + JSON.stringify(error));
        deferred.reject(error);
    });
    return deferred.promise;
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27488156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档