Cordova 3+查找设备上的所有音乐文件

时间:2015-12-03 20:56:21

标签: cordova cordova-plugins visual-studio-cordova

我正在尝试学习Cordova,使用visual studio作为我的想法。我已经按照网上的一些说明建立了一个音乐播放器,但缺少一个插件......“存储”。

我尝试运行它但是在尝试使用directoryReader时我得到'错误5'。

我认为这是由于权限问题,我再次假设它会被存储插件排序。

这里有几个问题......

我的上述假设是否正确? 我在哪里可以找到存储插件? 我如何包含插件?

提前感谢任何建议。

(我知道我应该发布代码,但我现在不回家了,这让我很生气!)

以下是我正在使用的代码示例:

document.addEventListener( 'deviceready', onDeviceReady.bind( this ), false );
function onDeviceReady() {
    // Handle the Cordova pause and resume events
    document.addEventListener( 'pause', onPause.bind( this ), false );
    document.addEventListener( 'resume', onResume.bind( this ), false );
    $('#readMusic').click(function () { readMusic(); });
};
function readMusic() {
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, fail);
}
function onFileSystemSuccess(fileSystem) {
    var directoryReader = fileSystem.root.createReader();
    directoryReader.readEntries(readerSuccess, fail);
}
function readerSuccess(entries) {
    var i;
    for (i = 0; i < entries.length; i++) {
        if (entries[i].name.indexOf('.mp3') > -1) {
            alert(entries[i].name);
        }
    }
}

2 个答案:

答案 0 :(得分:2)

在文件插件的3.0版本中,它将LocalFileSystem.PERSISTENT路径更改为应用程序拥有的路径,因此它将在应用卸载时删除,并且其他应用无法访问(如建议的那样)通过Android存储的最佳实践)

如果您想继续使用旧路径,则必须在config.xml

上添加此行
<preference name="AndroidPersistentFileLocation" value="Compatibility" />

答案 1 :(得分:0)

Cordova没有提供官方存储插件。您可以使用localStorage以下列方式存储值:

用于保存:localStorage.setItem(“key”,value);

用于检索:localStorage.getItem(“key”);

但是,您的应用程序似乎失败了,因为它无法从您设备的文件系统中读取信息。试试这个插件:https://github.com/apache/cordova-plugin-file

此插件实现了一个File API,允许对驻留在设备上的文件进行读/写访问。

让我知道它是否有效。