使用 phonegap 无法在 Android 上播放音频,但在 iOS 上可以正常播放

Audio will not play on Android using phonegap, but works fine on iOS

它在 iOS 上工作正常。

我看了很多答案,包括这两个:

Play sound on Phonegap app for Android

HTML5 audio not playing in PhoneGap App (Possible to use Media?)

我已经尝试了所有的解决方案:

这是我当前的代码:

if(device.platform === "Android")   //DIFFERENT PATH FOR ANDROID
{
    url = "/android_asset/www/sound.ogg";
}else{
    url = "sound.mp3";
}
alert(url);
sound = new Media(url);
sound.play();

有人有想法吗??感觉一直在兜圈子

我有类似的解决方案,这个解决方案对我有用 使用 window.location.pathname 获取应用程序的完整路径,这样您就无需担心设备类型,它会为您提供包括 index.html 在内的完整路径,并使用以下函数简单地剥离 index.html 从字符串中附加您的媒体文件。

function getPhoneGapPath() {

var path = window.location.pathname;
path = path.substr( path, path.length - 10 ); //strip off index.html
return 'file://' + path;

};

然后

url = getPhoneGapPath()+'sound.ogg';  //OR MP3 

alert(url);
sound = new Media(url);
sound.play();

希望对您有所帮助

我终于成功了!!

我首先使用上面的 @Sarim Sidd 帮助找到完整的 Android 路径来初始化音频文件,然后预加载音频文件:

//INITIALISE SOUND
if(device.platform === "Android")   //DIFFERENT PATH FOR ANDROID
{
    //navigator.notification.beep(1);
    var path = window.location.pathname;
    path = path.substr( path, path.length - 10 ); //strip off index.html
    url = 'file://'+path+"sound.ogg";
}else{
    url = "sound.mp3";
}
//sound = new Media(url);
sound = new Media(url);
sound.play();
sound.pause();

然后什么时候播放音频我在调用播放方法之前将音量调到最大(1.0)。出于某种原因,我注意到每次启动应用程序时音频都会重置为静音:

//PLAY BELL SOUND THROUGH APP
sound.setVolume(1.0);
sound.play();