使用媒体插件播放 mp3 的 Phonegap 应用程序不起作用
Phonegap app playing mp3 using Media plugin does not work
我在 phonegap 中开发了文件 reader,路径如下:
var defaultPath = 'file:///storage/sdcard0/';
所以我能够列出 sdcard 上的所有文件和 select 一个包含要加载的音频文件的文件夹。所以我的音频文件列表如下所示:
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 APP 对其进行测试时,一切正常,但当我进行构建并尝试从构建中测试应用程序时,这就不起作用了。
我自己发现了这个问题。
Android 不允许通过从根 /storage/sdcard0
/storage/sdcard1
开始的路径读取本地存储或 sdcard 上的文件。因此,当我们想要访问本地存储或 sdcard 时,我们必须通过 file:///mnt/sdcard/
访问 sdcard 和 file:///mnt/storage/sdcard1/
访问 phone 存储。
如何从 sdcard 或 phone 存储中读取条目的小示例:
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 中没有记录。
我在 phonegap 中开发了文件 reader,路径如下:
var defaultPath = 'file:///storage/sdcard0/';
所以我能够列出 sdcard 上的所有文件和 select 一个包含要加载的音频文件的文件夹。所以我的音频文件列表如下所示:
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 APP 对其进行测试时,一切正常,但当我进行构建并尝试从构建中测试应用程序时,这就不起作用了。
我自己发现了这个问题。
Android 不允许通过从根 /storage/sdcard0
/storage/sdcard1
开始的路径读取本地存储或 sdcard 上的文件。因此,当我们想要访问本地存储或 sdcard 时,我们必须通过 file:///mnt/sdcard/
访问 sdcard 和 file:///mnt/storage/sdcard1/
访问 phone 存储。
如何从 sdcard 或 phone 存储中读取条目的小示例:
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 中没有记录。