加载页面(视图)时如何在ionic中播放音频mp3
how to play audio mp3 in ionic when page ( view) is loaded
我想在我的页面加载时在后台播放音频 mp3,所以如果我使用按钮单击,它可以工作但是如果我尝试在我的控制器加载 $state 时播放它,它不起作用:
angular.module('starter', ['ionic','ngCordova'])
.run(function($ionicPlatform) {
$ionicPlatform.ready(function() {
if(window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if(window.StatusBar) {
StatusBar.styleDefault();
}
});
})
.controller("ExampleController", function($scope, $cordovaMedia) {
$scope.play = function(url) {
var my_media = new Media(url,
function () {
console.log("playAudio() : success");
},
function (err) {
console.log("playAudio() : : "+err);
});
my_media.play();
};
$scope.play('/android_asset/www/someAudio.mp3');
});
$scope.play 未定义。您是要定义一个 my_media 所在的函数吗?您需要稍微更改一下:
$scope.play = function(url) {
var my_media = new Media(url,
function () {
console.log("playAudio() : success");
},
function (err) {
console.log("playAudio() : : "+err);
});
my_media.play();
};
感谢您的帮助,答案是:
$scope.play = function() {
var mp3URL = getMediaURL("sounds/yourMp3AudioFile.mp3");
var media = new Media(mp3URL, null, null, mediaStatusCallback);
media.play();
}
var mediaStatusCallback = function(status) {
if(status == 1) {
$ionicLoading.show({template: 'Loading...'});
} else {
$ionicLoading.hide();
}
}
function getMediaURL(s) {
var isAndroid = ionic.Platform.isAndroid();
if(isAndroid) return "/android_asset/www/" + s;
return s;
}
$timeout(function() {
$scope.play();
}, 1000);
我想在我的页面加载时在后台播放音频 mp3,所以如果我使用按钮单击,它可以工作但是如果我尝试在我的控制器加载 $state 时播放它,它不起作用:
angular.module('starter', ['ionic','ngCordova'])
.run(function($ionicPlatform) {
$ionicPlatform.ready(function() {
if(window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if(window.StatusBar) {
StatusBar.styleDefault();
}
});
})
.controller("ExampleController", function($scope, $cordovaMedia) {
$scope.play = function(url) {
var my_media = new Media(url,
function () {
console.log("playAudio() : success");
},
function (err) {
console.log("playAudio() : : "+err);
});
my_media.play();
};
$scope.play('/android_asset/www/someAudio.mp3');
});
$scope.play 未定义。您是要定义一个 my_media 所在的函数吗?您需要稍微更改一下:
$scope.play = function(url) {
var my_media = new Media(url,
function () {
console.log("playAudio() : success");
},
function (err) {
console.log("playAudio() : : "+err);
});
my_media.play();
};
感谢您的帮助,答案是:
$scope.play = function() {
var mp3URL = getMediaURL("sounds/yourMp3AudioFile.mp3");
var media = new Media(mp3URL, null, null, mediaStatusCallback);
media.play();
}
var mediaStatusCallback = function(status) {
if(status == 1) {
$ionicLoading.show({template: 'Loading...'});
} else {
$ionicLoading.hide();
}
}
function getMediaURL(s) {
var isAndroid = ionic.Platform.isAndroid();
if(isAndroid) return "/android_asset/www/" + s;
return s;
}
$timeout(function() {
$scope.play();
}, 1000);