JavaScript Audio 对象在 Android API 19 中不起作用

JavaScript Audio object not working in Android API 19

本文关键字:不起作用 API Android Audio 对象 JavaScript      更新时间:2023-09-26

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

var myAudio = new Audio("myfile.mp3") ;
myAudio.play();

如果我在安卓 API 21 上安装生成的 apk,音频播放正常。如果我在 API 19 上安装它,它将无法播放。

对此

的任何帮助都非常感谢。

嗨,

你安装了科尔多瓦媒体插件吗?

我过去在 cordova 4.0.0 上做过类似的事情(肯定适用于 android 19(准确地说是 4.4.2)):

        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");
    }

},  

下面是一个完整的示例:https://github.com/nyluje/TestMediaPluginCordova