ng cordova media plugin stop方法不起作用

时间:2017-03-14 18:02:51

标签: javascript angularjs cordova ionic-framework ngcordova

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>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

您的媒体变量是本地。因此,在停止功能媒体中,未定义或不相同。

此外,为什么你以不同的方式使用方法?我认为你应该使用相同的(例如media.play()或$ cordovaMedia.stop(媒体);如果可能的话)

答案 1 :(得分:0)

您的变量var media超出了$ scope.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();
        }
    }


   });
	
})