使用phonegap在Android上无法播放音频,但在iOS上效果良好

使用phonegap在Android上无法播放音频,但在iOS上效果良好,android,html,cordova,audio,phonegap-plugins,Android,Html,Cordova,Audio,Phonegap Plugins,它在iOS上运行良好。 我已经找到了很多答案,包括以下两个: 我已经尝试了所有的解决方案: 将android的路径更改为/android\u asset/www/ 使用.ogg文件 使用play()/pause()预加载音频 使用Cordova/Phonegap提供的媒体插件 这是我目前的代码: if(device.platform === "Android") //DIFFERENT PATH FOR ANDROID { url = "/android_asset/www/

它在iOS上运行良好。

我已经找到了很多答案,包括以下两个:

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

  • 将android的路径更改为
    /android\u asset/www/
  • 使用.ogg文件
  • 使用play()/pause()预加载音频
  • 使用Cordova/Phonegap提供的媒体插件
这是我目前的代码:

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 help查找完整的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();
然后,当播放音频时,在调用play方法之前,我强制将音量调到满(1.0)。出于某种原因,每次启动应用程序时,我都会注意到音频不断重置为静音:

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

我面临同样的问题,仍然没有解决办法。嗯,这令人担忧!Stackoverflow上有这么多不同的答案,但似乎都不管用:/你是在模拟器上还是在真实的设备上试用的?试着按音量硬件键,它会使你的应用程序崩溃吗?我正在nexus 5上试着按音量按钮确实有效!!!!为什么它会自动静音???还是没有运气!URL输出
file:///android_asset/www/sound.ogg