离子/科尔多瓦应用程序播放声音在模拟器而不是Android设备上 [英] Ionic/Cordova app plays sound in emulator but not on Android device

查看:106
本文介绍了离子/科尔多瓦应用程序播放声音在模拟器而不是Android设备上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是新来的离子和科尔多瓦,所以我敢肯定,我失去了一些东西基本的,但我的问题是一个打包的APK不会在Android设备上播放声音。我可以得到声音的涟漪模拟器只是下面的code细玩:

I'm new to Ionic and Cordova, so I'm sure I'm missing something basic, but my problem is a packaged APK does not play sounds on an Android device. I can get the sound to play in the Ripple emulator just fine with the following code:

.controller('MainCtrl', ['$scope', function ($scope) {
        $scope.playStartBell = function () {
            var media = new Media('media/startBell.mp3', function () {
                console.log('good');
            }, function (err) {
                console.log('bad: ', err);
            });
            media.play();
        },
            $scope.playStopBell = function () {
            var media = new Media('media/stopBell.mp3', function () {
                console.log('good');
            }, function (err) {
                console.log('bad: ', err);
            });
            media.play();
        }
    }])

我用科尔多瓦安装插件媒体: $科尔多瓦插件添加org.apache.cordova.media

根据这个SO帖子,一个值必须加入到config.xml中,但我不知道如何做正确的离子/科尔多瓦。

According to this SO post, a value needs to be added to the config.xml, but I'm not sure how to do it properly for Ionic/Cordova.

推荐答案

原来,你必须指定先从/ android_asset / WWW preFIX像这样的路径:

Turns out that you have specify path starting with the /android_asset/www prefix like so:

/ android_asset / WWW /

/android_asset/www/

所以,改变了我的code到下面的工作。注意你要检测你正在运行的设备上,确定合适的位置。

So changing my code to the following worked. Note you'll want to detect what device you're running on to determine the appropriate location.

.controller('MainCtrl', ['$scope', function ($scope) {
        ///android_asset/www/
        $scope.playStartBell = function () {
            var media = new Media('/android_asset/www/media/startBell.mp3', function () {
                console.log('good');
            }, function (err) {
                console.log('bad: ', err);
            });
            media.play();
        },
            $scope.playStopBell = function () {
            var media = new Media('/android_asset/www/media/stopBell.mp3', function () {
                console.log('good');
            }, function (err) {
                console.log('bad: ', err);
            });
            media.play();
        }
    }])

这篇关于离子/科尔多瓦应用程序播放声音在模拟器而不是Android设备上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆