如何使用 annyang 语音命令更改我在 $scope 中声明的 AngularJS 变量?

How do I change an AngularJS variable I declared in $scope using annyang speech commands?

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

Link to fiddle

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();

  });

});

非常感谢您的帮助。

只需将 $scope.$digest 放入您的暂停回调中即可:

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

所以当您尝试在 angular 的工作区域之外更改 $scope 变量时,angular 会知道某些内容已更改。

希望对您有所帮助