与视频指令交互 - 如何做?

时间:2013-12-13 00:18:02

标签: javascript angularjs angularjs-directive videogular

我正在使用https://github.com/2fdevs/videogular并开箱即用,特别适用。

<videogular vg-width="videoWidth" vg-height="videoHeight" >
    <video class='videoPlayer' ng-model="currentVideo">
        <source ng-src='{{currentVideo.videoLocation}}' test="{{currentVideo}}" type='video/ogg'></source>
    </video>
</videogular>

我不确定我会怎么做,因为自动播放不正确,可以通过编程方式播放视频吗? 我知道我可以在包含上述标记的控制器中,调用angular.element()然后调用.play()但是从我读过的内容看起来似乎错了。我不应该在任何控制器内调用angular.element()

我该怎么办?我应该创建一个执行此操作的指令吗?在哪里放置“播放”和“暂停”视频的逻辑的最佳位置(fwi,我想在屏幕上有两个视频,一旦第一个结束,做一些事情,然后播放第二个。)

1 个答案:

答案 0 :(得分:2)

昨天我们已经公开API可以通过$ scope访问,因此您可以访问所有可用的方法。

您可以查看API here

此版本尚未通过凉亭提供,我们计划在本周末这样做。

<强>更新

了解视频何时完成的最佳方法是在控制器中添加范围功能。

$scope.onCompletePlayer1 = function() {
    console.log("on complete 1");
};

$scope.onCompletePlayer2 = function() {
    console.log("on complete 2");
};

然后在您的videogular指令中添加这些函数。

<videogular vg-complete="onCompletePlayer1()" ...></videogular>
<videogular vg-complete="onCompletePlayer2()" ...></videogular>

最后在vg-complete中添加videogular.js作为$ scope函数:

\\Line 159
vgComplete: "&" 

\\Line 507
$scope.onComplete = function(event) {
    vg.setState(VG_STATES.STOP);
    $scope.$emit(VG_EVENTS.ON_COMPLETE);
    $scope.vgComplete();
    $scope.$apply();
};

我们会尝试在下一个版本中添加它,所以也许你想等几天。