iam创建的简单离子音频应用程序。它的播放功能正常工作,但停止功能不起作用。该代码请帮助解决此问题这是控制器
angular.module('starter', ['ionic', 'ngCordova'])
.controller("ExampleController", function($scope, $ionicPlatform, $cordovaMedia, $ionicLoading) {
$ionicPlatform.ready(function() {
$scope.play = function() {
var media = new Media(src, null, null, mediaStatusCallback);
$cordovaMedia.play(media);
};
$scope.pause = function() {
media.pause();
};
$scope.stop = function() {
media.stop();
};
var mediaStatusCallback = function(status) {
if(status == 1) {
$ionicLoading.show({template: 'Loading...'});
} else {
$ionicLoading.hide();
}
}
});
})
这是HTML代码:
<ion-pane>
<ion-header-bar class="bar-stable">
<h1 class="title">Ionic Blank Starter</h1>
</ion-header-bar>
<ion-content>
<button class="button" ng-click="play('http://www.stephaniequinn.com/Music/Commercial%20DEMO%20-%2013.mp3')">Play from internet</button>
<button class="button" ng-click="stop()">Stop</button>
</ion-content>
</ion-pane>
您的媒体变量是 local 。因此,在停止功能中,媒体不确定或不相同。
此外,为什么要以不同的方式使用方法?我认为您应该使用相同的(例如Media.play()或$ Cordovamedia.stop(媒体);如果可能的话)
您的变量var media
不超出$ scope.pape.pause.pause和$ scope.stop。尝试在$ scope.play功能上将其声明在外面。
angular.module('starter', ['ionic', 'ngCordova'])
.controller("ExampleController", function($scope, $ionicPlatform, $cordovaMedia, $ionicLoading) {
$ionicPlatform.ready(function() {
var media = new Media(src, null, null, mediaStatusCallback);
$scope.play = function() {
$cordovaMedia.play(media);
};
$scope.pause = function() {
media.pause();
};
$scope.stop = function() {
media.stop();
};
var mediaStatusCallback = function(status) {
if(status == 1) {
$ionicLoading.show({template: 'Loading...'});
} else {
$ionicLoading.hide();
}
}
});
})