Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cordova中本地文件的位置_Cordova_Ionic Framework_Cordova Plugins_File Transfer - Fatal编程技术网

cordova中本地文件的位置

cordova中本地文件的位置,cordova,ionic-framework,cordova-plugins,file-transfer,Cordova,Ionic Framework,Cordova Plugins,File Transfer,我正在使用一个视频播放器,它接受一个绝对路径作为参数。如果我将视频放入www文件夹,并使用以下代码: var path = cordova.file.applicationDirectory + 'www/myvideo.mp4'; GoogleVRPlayer.playVideo(path); 视频开始播放。日志告诉我视频在: file:///var/containers/Bundle/Application/F4D23EDE-...-...-...-.../appname.app/www/

我正在使用一个视频播放器,它接受一个绝对路径作为参数。如果我将视频放入
www
文件夹,并使用以下代码:

var path = cordova.file.applicationDirectory + 'www/myvideo.mp4';
GoogleVRPlayer.playVideo(path);
视频开始播放。日志告诉我视频在:

file:///var/containers/Bundle/Application/F4D23EDE-...-...-...-.../appname.app/www/myvideo.mp4
然而,我不希望我的视频在应用程序中“烘焙”:我希望用户先下载它。对于下载,我使用
cordova插件文件传输

download()
    {
        this.fileTransfer.download(
            this.uri,
            'cdvfile://localhost/persistent/path/to/downloads/',
            function(entry) {
                console.log("download complete: " + entry.toURL());
            },
            function(error) {
                console.log("download error source " + error.source);
                console.log("download error target " + error.target);
                console.log("download error code" + error.code);
            },
            false,
            {
                headers: {
                    "Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
                }
            }
        );
    }
这也行。视频下载,日志告诉我视频存储在

file:///var/mobile/Containers/Data/Application/785BC9AF-...-...-...-.../Documents/path/to/downloads
请注意,“Application”后面的ID对于这两个文件是不同的。此外,
appname.app
在下载文件的URL中不存在。但视频必须是应用程序的一部分,因为下载视频后应用程序大小会增加

如何让插件下载
www
文件夹中的文件,以便播放?或者,我应该在播放器中使用哪个路径,以便播放在
路径/to/downloads
中下载的视频

更新1:添加了额外信息

更新2:

我已将第一条路径更改为

cordova.file.documents目录+'path/to/downloads/myvideo.mp4'

控制台告诉我视频存储在:
file:///var/mobile/Containers/Data/Application/A9B73639-...-...-...-.../Documents/path/to/downloads

它试图播放的视频是:
file:///var/mobile/Containers/Data/Application/A9B73639-...-...-...-.../Documents/path/to/downloads/myvideo.mp4


但是,播放机不播放文件:
加载视频失败:操作无法完成

编辑2:

用户修复了这个问题

这是一个路径错误。将下载文件的名称设置为fileTransfer函数中的参数可以更正此问题

编辑:

我看到你正在使用VR播放器插件。查看文档,它使用谷歌的VR播放器作为插件的基础。通过填写以下指南,您是否能够在web浏览器中播放视频:

这将确认视频与插件使用的播放器兼容

原始答案:

如果你想储存你下载的文件,最好使用Cordova文件插件

cordova plugin add cordova-plugin-file
将其与文件传输插件结合使用

cordova plugin add cordova-plugin-file-transfer
问题是,根据文件插件文档,安装应用程序后,/www文件夹是只读的,因此您无法在那里下载和存储文件

这里有文档


谢谢您的回复!我正在使用这两个插件,并阅读文档,但我无法让它工作。不幸的是,我不太擅长使用cordova插件。你是如何打开视频的?使用
var path=cordova.file.documents目录+'path/to/downloads/myvideo.mp4';谷歌播放器。播放视频(路径)视频文件现在应该在正确的文件夹中(参见原始问题中的更新2),但它仍然无法播放。我已在我的答案中添加了一个编辑,因为它可能与您的问题相关。我在存储文件时选择了一个文件名,从而使其正常工作。或者下载后的文件名与原始文件名不同?无论如何,谢谢你的帮助!谢谢。