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

标签 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 做过类似的事情(绝对适用于 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

关于JavaScript 音频对象在 Android API 19 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36775845/

相关文章:

api - 记录 Spring HATEOAS API

python - TypeError:强制转换为 Unicode:需要字符串或缓冲区,找到 int

javascript - ExtJs 双击网格行应将项目移动到另一个网格

java - 如何删除 android TimePicker 周围的空间

java - 除了在 JavaScript 等多范式/函数式语言中隐藏信息之外,闭包的真正值(value)主张是什么?

java - Android Java 从 webview 生成带有单独页眉和页脚的 PDF 文件

安卓: "Socket Not Connected"异常

JavaScript 全屏 API 插件

javascript - 在 asp.net 中创建弹出窗口?

javascript - 单击按钮时创建多个实例 jQuery UI 对话框