1

我有一个简单的语音识别应用程序,可以根据语音命令启动和暂停视频。我的问题是,当我发出 pause 命令时,我在 $scope 中声明的变量不会改变。目的是在我使用“暂停”语音命令暂停视频时更改文本区域中的数字。

链接到小提琴

var myApp = angular.module('myApp', ['vjs.video']);

myApp.controller("myCtrl", function MyCtrl($scope) {
  $scope.playtime = 0; 

  $scope.$on('vjsVideoReady', function(e, data) {
    $scope.vid = data.player;

    $scope.commands = {
      'play': function() {
        $scope.vid.play();
      },
      'pause': function() {
        $scope.vid.pause();
        $scope.playtime = 10;
      }
    };

    $scope.ay = annyang;
    $scope.ay.addCommands($scope.commands);
    $scope.ay.debug();
    $scope.ay.start();

  });

});

非常感谢您的帮助。

4

1 回答 1

1

只需简单地放入$scope.$digest您的暂停回调:

'pause': function() {
    $scope.vid.pause();
    $scope.playtime = 10;
    $scope.$digest();
}

因此,当您尝试在 Angular 的工作区域之外更改$scope变量时,Angular 会知道发生了一些变化。

希望有帮助

于 2017-09-03T22:41:01.837 回答