# Плагины плеера Плеер поддерживает систему плагинов для расширения базовой функциональности. Все плагины расположены в `src/plugins/`. #### **VokaHeartbeatPlugin** Плагин для отправки heartbeat-сигналов на сервер. **Параметры:** ```typescript { /** * Обязательный: Шина событий плеера * @type {EventBus} */ bus: EventBus, } ``` **Пример использования:** ```javascript plugins.vokaHeartbeatPlugin = { bus: this.bus, } ``` --- #### **VokaKeyboardPlugin** Обработка клавиатурного ввода для управления плеером. **Параметры:** ```typescript { /** * Настройки перемотки */ skip: { forward: number, // @default 5 backward: number // @default 5 }, } ``` **Поддерживаемые клавиши:** - Space, Enter - Play/Pause - F - Fullscreen - right - Forward - left - Backward - up - увеличить звук - down - уменьшить звук - M - Mute --- #### **VokaMagicRemotePlugin** Поддержка TV-пультов для Smart TV. **Параметры:** ```typescript { /** * Настройки перемотки */ skip: { forward: number, // @default 5 backward: number // @default 5 }, } ``` **Поддерживаемые клавиши:** - Enter - Play/Pause - right/next - Forward - left/prev - Backward - PLAY - Play - PAUSE - пауза - STOP - пауза --- #### **VokaMetricsPlugin** Сбор и отправка метрик просмотра. **Параметры:** ```typescript { /** * Обязательный: Шина событий */ bus: EventBus, } ``` **Собираемые метрики:** - init - buffering - play - update - pause - periodic --- #### **VokaEventsMapperPlugin** Связывает различные компоненты плеера через единую шину событий. **Параметры:** ```typescript { /** * Наблюдатель за кнопкой Zoom */ zoomObserver: Observer, /** * Наблюдатель за выделением областей */ selectionObserver: Observer, /** * Шина событий */ bus: EventBus } ``` #### **ChromeCast** Внешний плагин https://github.com/silvermine/videojs-chromecast Обеспечивает функционал для отправки медиа по технологии Chromecast на приёмник. **Параметры** https://github.com/silvermine/videojs-chromecast/tree/master?tab=readme-ov-file#configuration-options **Особые условия** Для появления кнопки для отправки медиа по Chromecast требуется соблюдение условий: 1. На странице должна быть загружена CAST SDK ```html ``` 2. В локальной сети должны быть доступны приёмники Chromecast ![img.png](./images/chromecast-reciever.png) --- #### **VokaLogPlugin** Логирование основных событий плеера Включает события: - HTMLMediaElement events - HTMLVideoElement events - Element events - video.js events **Параметры:** ```typescript { /** * Включает плагин логирования * зависит от переменной options.log */ enabled: Bollean, /** * ID для идентификации логов и плеера */ id: Number, } ```