JavaScript音频对象在Android API 19中不工作

JavaScript音频对象在Android API 19中不工作,javascript,android,api,cordova,audio,Javascript,Android,Api,Cordova,Audio,我已经使用ionic/Cordova框架从html5和JavaScript创建了一个Android应用程序。在其中,我创建并播放音频对象,如下所示: var myAudio = new Audio("myfile.mp3") ; myAudio.play(); 如果我在Android API 21上安装生成的apk,音频播放效果很好。如果我把它安装在API 19上,它就不能播放了 非常感谢您在这方面的帮助 您好,您安装了cordova媒体插件吗 我曾经在cordova 4.0.0上做过类似的事

我已经使用ionic/Cordova框架从html5和JavaScript创建了一个Android应用程序。在其中,我创建并播放音频对象,如下所示:

var myAudio = new Audio("myfile.mp3") ;
myAudio.play();
如果我在Android API 21上安装生成的apk,音频播放效果很好。如果我把它安装在API 19上,它就不能播放了


非常感谢您在这方面的帮助

您好,您安装了cordova媒体插件吗

我曾经在cordova 4.0.0上做过类似的事情(肯定是在android 19上工作的(准确地说是4.4.2)):


这里有一个完整的例子:

嗨,你能提供更多信息吗。什么是Acksound?如果你有一个完整的html和JavaScript代码可以在这里共享,那就更好了?@TJ1 Acksound什么都不是(当时是我自己的东西)。您是否安装了cordova-media-plugin,并使用了媒体([your file].mp3)对象而不是音频([your file].mp3)?@nyluie是的,仍然没有成功。我想我需要告诉我的应用程序在什么地方使用cordova媒体插件?如果您有一个非常有用的完整代码。@TJ1我在github上为您提供了一个完整的示例:,它可以在android kitkat设备上运行(在交付前经过验证)
        AckSound:function(){
        try{
            var pathMedia;
            if(device.platform ==='iOS'){
                pathMedia ='';  
            } else {
                pathMedia = app.getCordovaPath(); 
            }
            var snd =new Media(pathMedia+'mySound.mp3'); 


            // Update media position every second
            var mediaTimer = null;


            mediaDuration = snd.getDuration();
            console.log("mediaDuration is " + mediaDuration); 
            snd.play();

            if(mediaTimer==null){
                mediaTimer = setInterval(function () {
                        // get media position
                        snd.getCurrentPosition(
                            // success callback
                            function (position) {
                                if (position > 0) {
                                    console.log((position) + " sec");
                                } else {
                                    //if position isn t > 0, the file is over
                                    snd.stop();
                                    clearInterval(mediaTimer);
                                    mediaTimer = null;
                                    snd.release();
                                    delete snd;

                                }
                            },
                            // error callback
                            function (e) {
                                console.log("Error getting pos=" + e);
                            }
                            );
                }, 100);
            };



            delete snd;

    } catch(err){
        console.log("Error: in AudioManagement.AckSound(), Error is " + err);
    }
    console.log("AudioManagement.AckSound() stops");

    }


},