从Controller控制ngVideo对象

时间:2016-10-18 15:44:39

标签: angularjs angularjs-directive angularjs-scope html5-video

我在项目中使用ngVideo,我不确定如何从控制器获取/设置当前时间。

我的控制器:

'use strict';

angular.module('clientApp')
.config(function($stateProvider){
  $stateProvider
  .state('video', {
    url:'/video',
    templateUrl:'views/video.html',
    controller:'VideoController as video'
  });
})
.controller('VideoController', function($scope, video){
  video.addSource('mp4', 'views/unit_1.mp4');
  video.currentTime = 10;
  console.log('Current Time: ' video.currentTime);

});

我的HTML:

<section class="video" ng-video>
  <video vi-screen></video>
<section vi-feedback>

    <ul>
        <li>Time: {{currentTime}}s / {{duration}}s</li>
        <li>Volume: {{volume}}</li>
        <li>Buffered: {{buffered}}%</li>
        <li>Loading: {{loading}}</li>
        <li>Playing: {{playing}}</li>
    </ul>

</section>
</section>

1 个答案:

答案 0 :(得分:1)

video.currentTime = 10;

应该设定时间。我会创建一个函数来设置时间,如果你需要在代码中的其他位置重置它,如:

$scope.setCurrentTime = function(newTime) {
    video.currentTime = newTime;
};

然后,您可以从表单或其他代码中调用它:

<button ng-click="setCurrentTime(30)">Set to 30</button>

if (some condition) {
    $scope.setCurrentTime(30);
}

或者,您可以将视频卷绑定到输入字段(不带函数):

<input id="videoTime" ng-model="video.currentTime" />

希望有所帮助!