В video_player.js
определите класс-оболочку видеоплеера для инициирования и управления проигрывателем dash.js.
Настройте широкополосный плеер
Определите, где в вашем приложении разместить широкополосный проигрыватель, создав теги видео и оболочки:
Создать видеоплеер
Инициализируйте класс видеоплеера с переменными для элементов HTML, проигрывателя dash.js и обратных вызовов, которые могут использовать другие методы класса.
Определить функции управления воспроизведением
Для отображения рекламного проигрывателя и присоединения видеопредставления создайте метод VideoPlayer.play()
. Затем создайте метод VideoPlayer.stop()
для очистки после завершения показа рекламных модулей.
Предварительная загрузка манифеста рекламного потока
Чтобы убедиться, что реклама достаточно загружена во время трансляции контента и до начала рекламной паузы, используйте VideoPlayer.preload()
и VideoPlayer.isPreloaded()
.
1. Предварительная загрузка рекламного потока
Создайте метод VideoPlayer.preload()
для предварительной загрузки манифеста рекламного потока и создания рекламного буфера перед рекламной паузой. Необходимо обновить настройки потоковой передачи проигрывателя 'cacheInitSegments'
до значения true
. Обновив настройки, вы включите кэширование сегментов init, что позволит избежать задержек при переключении на рекламу.
2. Проверьте предварительно загруженный рекламный буфер.
Создайте метод VideoPlayer.isPreloaded()
для проверки того, достаточно ли предварительно загружено рекламного буфера по сравнению с пороговым значением буфера, установленным в приложении:
Прикрепить слушателей проигрывателя
Чтобы добавить прослушиватели событий для события проигрывателя dash.js, создайте метод VideoPlayer.attachPlayerListener()
: PLAYBACK_PLAYING
, PLAYBACK_ENDED
, LOG
и ERROR
. Этот метод также обрабатывает события для URI идентификатора схемы, а также настраивает функцию очистки для удаления этих прослушивателей.
Установить обратные вызовы событий игрока
Для управления воспроизведением рекламного модуля на основе событий проигрывателя создайте методы VideoPlayer.onAdPodPlaying()
, VideoPlayer.onAdPodEnded()
и VideoPlayer.onAdPodError()
:
Создайте сеттер для события onAdPodEnded
Настройте функцию обратного вызова, которая будет запускаться после завершения показа рекламного модуля, создав метод VideoPlayer.setOnAdPodEnded()
. Класс приложения использует этот метод для возобновления трансляции контента после рекламных пауз.
Обработка событий метаданных потока
Установите функцию обратного вызова, которая будет запускаться на основе событий emsg, создав метод VideoPlayer.setEmsgEventHandler()
. В рамках этого руководства включите параметр scope
, так как setEmsgEventHandler()
вызывается вне video_player.js
.
Показывать и скрывать видеоплеер во время рекламных пауз
Чтобы отображать видеоплеер во время рекламных пауз и скрывать его после окончания рекламной паузы, создайте методы VideoPlayer.show()
и VideoPlayer.hide()
:
Затем создайте класс менеджера объявлений, чтобы использовать IMA SDK для выполнения потокового запроса, получения манифеста рекламного модуля, прослушивания событий потока IMA и передачи событий emsg в IMA SDK.