我是Ionic和Cordova的新手,所以我肯定错过了一些基本的东西,但我的问题是打包的APK不能在Android设备上播放声音。我可以用以下代码在Ripple模拟器中播放声音:
.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();
}
}])
我用Cordova安装了媒体插件:$cordova plugin add org.apache.cordova.media
根据这篇SO文章,需要在config.xml中添加一个值,但我不确定如何为Ionic/Cordova正确添加。
原来您已经指定了以/android_asset/www前缀开头的路径,如下所示:
/android_asset/www/
因此,将我的代码更改为以下代码是有效的。请注意,您需要检测运行的设备以确定适当的位置。
.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();
}
}])