我正在尝试使用 Phonegap 播放本地声音文件。这在 http 上运行良好,但不适用于本地文件。我可以看到设备上的文件并手动播放它们,但不能使用 Phonegap 的 API 这样做。我试过了:
- .mp3 和 .wav 文件格式。
- 将文件放在 www/ (带有 path
/android_asset/www/sound.mp3
)和 /sdcard/ (带有 pathsound.mp3
)中。 - 改变协议(有或没有 file://)。
但似乎没有任何效果,成功和错误回调都没有被调用。在尝试播放之前,我还要确保该文件确实存在。这是我的代码:
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fs) {
var directoryReader = fs.root.createReader();
directoryReader.readEntries(function(entries) {
for (var i=0; i<entries.length; i++) {
if (entries[i].isFile && entries[i].name.match(/.*\.wav$/)){
var audio = new Media(entries[i].toURL().substr(19), function(){console.log('success');}, function(){console.log('error');});
console.log("!!!!! " + audio.getDuration());
audio.play();
audio.release();
break;
}
}
}, function (error) {
alert(error.code);
})
}, function (error) {
alert(error.code);
});
audio.getDuration
总是返回 -1。我在运行 Android 2.3.3 的 Android Nexus S 上使用 Phonegap 1.9,该应用针对 API 级别 2.1。
有任何想法吗?