我正试图在我的phonegap应用程序中播放声音。
我用来做的功能如下:
function playAudio(src) {
src = "media/sounds/" + src; //go to sound folder always
if (device.platform == 'Android') {
src = '/android_asset/www/' + src; // Android needs the search path explicitly specified
}
var mediaRes = new Media(src,
function onSuccess() {
mediaRes.release(); // release the media resource once finished playing
},
function onError(e){
alert("error playing sound: " + JSON.stringify(e) + "\n src: " + src);
});
mediaRes.play(); // the actual playing
}
奇怪的是,如果我设置的应用程序只包含其身体部分有javascript的index.html文件,那么声音就会起作用。
但是,当我使用同事编码的菜单时,它不起作用。在那种情况下,我得到
Uncaught ReferenceError: Media is not defined
要在两个设置(简单设置,工作设置和菜单设置)之间切换,我只需要交换包含文件的“www”文件夹。因此,cordova-plugin-media可以以相同的方式用于两者。 对于不工作的,cordova.js和phonegap.js肯定是可用的(我在这些文件中包含了一个自定义警报功能来检查)。
此外,声音播放在“deviceready”被触发后执行。
有没有人建议继续调试?完全重新设计菜单可能会有效,但我想以任何方式避免这种情况。
答案 0 :(得分:3)
更新:解决方案是在index.html中加载phonegap.js和cordova.js显然导致了冲突。删除phonegap.js并离开cordova.js就可以了。
答案 1 :(得分:2)
对我来说,它是相同的症状(媒体未定义),但来自不同的问题(缺少媒体插件)。我必须运行这个命令:
cordova插件添加org.apache.cordova.media