phonegap:未捕获的ReferenceError:未定义媒体

时间:2014-02-24 11:08:25

标签: cordova

我正试图在我的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”被触发后执行。

有没有人建议继续调试?完全重新设计菜单可能会有效,但我想以任何方式避免这种情况。

2 个答案:

答案 0 :(得分:3)

更新:解决方案是在index.html中加载phonegap.js和cordova.js显然导致了冲突。删除phonegap.js并离开cordova.js就可以了。

答案 1 :(得分:2)

对我来说,它是相同的症状(媒体未定义),但来自不同的问题(缺少媒体插件)。我必须运行这个命令:

  

cordova插件添加org.apache.cordova.media