使用 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?)
我已经尝试了所有的解决方案:
- 正在为 Android
将路径更改为 /android_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 帮助找到完整的 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();
它在 iOS 上工作正常。
我看了很多答案,包括这两个:
Play sound on Phonegap app for Android
HTML5 audio not playing in PhoneGap App (Possible to use Media?)
我已经尝试了所有的解决方案:
- 正在为 Android 将路径更改为
- 使用 .ogg 文件
- 使用 play() / pause() 预加载音频。
- 使用 Cordova/Phonegap 提供的媒体插件
/android_asset/www/
这是我当前的代码:
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();