Взаимодействие с директивой 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 ответ

Вчера мы показали доступность API через $scope, чтобы вы могли получить доступ ко всем доступным методам.

Вы можете проверить API здесь.

Эта версия еще не доступна через Bower, мы планируем сделать это в эти выходные.

ОБНОВИТЬ

Лучший способ узнать, когда видео было завершено, - добавить функцию контекста в ваш контроллер.

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

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

Затем добавьте в ваш HTML эти функции в вашем videogular директивы.

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

И, наконец, добавить vg-complete как функция $ scope в videogular.js:

\\Line 159
vgComplete: "&" 

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

Мы постараемся добавить это в следующем выпуске, поэтому, возможно, вы захотите подождать пару дней.

Другие вопросы по тегам