使用phonegap在Android上无法播放音频,但在iOS上效果良好
它在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/
- 将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