Phonegap应用程序使用媒体插件播放mp3不起作用



我在phonegap中开发了文件读取器,路径如下:

var defaultPath='file:///storage/sdcard0/';

所以我可以列出SD卡上的所有文件,并选择一个包含音频文件的文件夹来加载。所以我的音频文件列表看起来像:

i[1] = 'file:///storage/sdcard0/Download/audio/file.mp3';
i[2] = 'file:///storage/sdcard0/Download/audio/file1.mp3';

然后我尝试使用媒体插件(已安装)初始化歌曲,代码如下:

var media = new Media(i[1]);
media.play();

但是音频不播放或者什么都不做。但当我尝试使用PhoneGap应用程序进行测试时,一切都很好,但当我进行构建并尝试从构建中测试应用程序时,这就不起作用了。

我自己发现了这个问题。Android不允许通过从根/storage/sdcard0 /storage/sdcard1开始的路径读取本地存储或SD卡上的文件。因此,当我们想访问本地存储或SD卡时,我们必须通过用于SD卡的file:///mnt/sdcard/和用于电话存储的file:///mnt/storage/sdcard1/来访问它。

如何从SD卡或手机存储中读取条目的小示例:

var path = 'file:///mnt/storage/sdcard1/'; 
window.resolveLocalFileSystemURL(path, function(entry){
    var reader = entry.createReader();
    reader.readEntries(showEntries);
});
function showEntries(entries){
   var entries = [];
   for(var i =0; i < entries.length; i++){
       var entry = entries[i];
       var data = {
           name: entry.name,
           path: entry.fullPath,
       };
       entries[i] = data;
   }
   console.log(JSON.stringify(entries));
}

希望这将有助于解决和我一样的问题,因为这并没有记录在phonegap中。

最新更新