javascript - 混合应用程序 : Audio not playing on Android

标签 javascript android angularjs audio monaca

我正在使用 Monaca.mobi 构建混合应用程序。当我为 IOS 构建应用程序时,一切都很好;但是,当我为 Android 设备(Nexus 7)构建它时,音频确实可以通过。在 Monaca 调试器中;然而,音频工作正常。是否有关于 Android 设备的一些我不知道的事情,也许是应用程序的某些权限?

声音是通过点击某些按钮时调用的 angularJS 函数来播放的。我知道这段代码是正确的,只是想我可以分享它:

function DontAsk($scope){
$scope.play = function(){
    var audio = new Audio();
        audio.src = 'sounds/DontEventAsk.mp3';
    audio.play();
}}

感谢您的见解。

最佳答案

您的上述代码仅适用于 iOS。对于 Android,无法识别本地音频文件的路径。以下代码适用于两种操作系统。我也已经使用构建的应用程序进行了测试。

$scope.play= function(){
    var os = navigator.platform;
    if (os=='iPhone'){
        var url = "sounds/DontEventAsk.mp3";
    }
    else{
        var url = getPhoneGapPath() + "sounds/DontEventAsk.mp3";
    }
    var my_media = new Media(url,
        // success callback
        function() {
            console.log("playAudio():Audio Success");
        },
        // error callback
        function(err) {
            console.log("playAudio():Audio Error: "+JSON.stringify(err));
    });

    // Play audio
    my_media.play();
}

关于javascript - 混合应用程序 : Audio not playing on Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23248165/

相关文章:

javascript - 从 datepicker.js 文件调用函数但出错

javascript - 如何在 JavaScript 中清除文本输入并重新聚焦

javascript - 创建 JavaScript 命名空间的最佳方式是什么?

android - 如何垂直居中图表(使用 mpandroidchart 中的 LineChart)?

android - 如何在单元测试中获取上下文以在内存数据库对象中创建 Room 数据库

javascript - 如何继续实现混合移动应用理念?

javascript - 如何在 typescript 中找到递归父级

javascript - 单击 div 和带有 JS 的按钮后重定向用户

java - 使用java在android中的文本和整数之间迭代以显示专业的启动画面

javascript - 将 angularjs 集合的项目的元素传递给 javascript 函数