Files

175 lines
3.7 KiB
Markdown

# Плагины плеера
Плеер поддерживает систему плагинов для расширения базовой функциональности. Все плагины расположены в `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
<script src="https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1"></script>
```
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,
}
```