Phonegapでローカルサウンドファイルを再生しようとしています。これはhttpでは正常に機能しますが、ローカルファイルでは機能しません。デバイス上のファイルを確認して手動で再生できますが、PhonegapのAPIでは再生できません。私はもう試した:
- .mp3および.wavファイル形式。
- ファイルをwww/(パス付き
/android_asset/www/sound.mp3
)および/ sdcard /(パス付きsound.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を返します。Android2.3.3を実行しているAndroidNexusSでPhonegap1.9を使用しており、アプリはAPIレベル2.1を対象としています。
何か案は?