2017-01-13 2 views
0

В проекте, над которым я сейчас работаю, у меня есть проигрыватель VideoJS, который я хочу изменить, когда заканчивается видео.
Используя API VideoJS, я могу получить скрипт Javascript для запуска, когда игрок достиг состояния «закончено», но я не могу найти какой-либо код в своей документации или StackOverflow, объясняющий, как это сделать.Загрузите новое видео автоматически, когда VideoJS MP4 заканчивается

HTML

<video 
id="my_video_1" 
style="display:block;" 
class="video-js vjs-default-skin vjs-nofull vjs-big-play-centered" 
controls autoplay preload="none" 
width="800px" 
poster='res/img/poster.jpg' 
data-setup='{ "fluid": true, "sources": [{ "type": "video/mp4", "src": "res/vid/vid1.mp4"}] }' 
> 
</video> 

Есть ли способ динамического изменения СРК в новый файл, когда заканчивается видео?

ответ

1

VideoJS имеет API-интерфейс 'player.on', за которым затем следует какой бы слушатель не нужен - в этом случае ('finished').
Где я падал, было то, что я пытался использовать document.GetElementByID и обновлять src таким образом.

Изменив код VideoJS в HTML на стиль выше, я смог запустить ниже прослушивающее событие, чтобы обновить src на завершении и загрузить новое видео.

Следующий выпуск, который у меня был, был видеоролик. Когда видео закончилось, ту же функцию вызывали бесконечно.
Чтобы встретить это, я добавил логическое значение «выполнено», которое изменяется на «Истина» при первом воспроизведении.

<script> 
    var video = videojs('my_video_1').ready(function(){ 
     var player = this; 
     var executed = false; 
     player.on('ended', function() { 
     if (!executed) { 
     player.src({"type":"video/mp4", "src":"res/vid/vid2.mp4"}); 
     player.play(); 
     executed = true 
     } 
     }); 
    }); 
</script> 

Первое видео теперь воспроизводится, а затем второе, когда первый закончен без какого-либо взаимодействия с пользователем.

Я надеюсь, что это поможет всем, кто может столкнуться с подобной проблемой.