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

时间:2015-05-15 12:19:31

标签: android html5 cordova audio phonegap-plugins

在iOS上运行正常。

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

Play sound on Phonegap app for Android

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

我尝试了所有解决方案:

  • 将路径更改为Android的/android_asset/www/
  • 使用.ogg文件
  • 使用play()/ pause()预加载音频。
  • 使用Cordova / Phonegap提供的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();

任何人都有想法?感觉就像我一直在围成圈子

2 个答案:

答案 0 :(得分:2)

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

index.html

然后

function getPhoneGapPath() {

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

};

希望这有帮助

答案 1 :(得分:0)

我终于成功了!

我首先使用@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();