【问题标题】:ng cordova media plugin stop method not workingng cordova 媒体插件停止方法不起作用
【发布时间】:2017-08-05 05:23:05
【问题描述】:

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>

【问题讨论】:

  • 尝试在 $scope.play 函数之外声明变量 media...它目前超出了其他函数的范围。

标签: javascript angularjs cordova ionic-framework ngcordova


【解决方案1】:

您的变量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();
        }
    }


   });
	
})

【讨论】:

  • 我喜欢这样,但它不起作用,现在两个功能都不起作用
  • 你在哪里定义src?你现在看到什么错误?请显示错误以便我们提供帮助
  • 控制台中没有显示错误。我不知道发生了什么。link这是我的 www 文件夹,您可以检查一下吗?
【解决方案2】:

您的媒体 变量是本地。所以在停止函数中媒体是未定义的或不相同的。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-30
    • 1970-01-01
    • 2016-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-03
    • 1970-01-01
    相关资源
    最近更新 更多