175 lines
3.7 KiB
Markdown
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
|
|
|
|

|
|
|
|
---
|
|
|
|
#### **VokaLogPlugin**
|
|
Логирование основных событий плеера
|
|
Включает события:
|
|
- HTMLMediaElement events
|
|
- HTMLVideoElement events
|
|
- Element events
|
|
- video.js events
|
|
|
|
**Параметры:**
|
|
```typescript
|
|
{
|
|
/**
|
|
* Включает плагин логирования
|
|
* зависит от переменной options.log
|
|
*/
|
|
enabled: Bollean,
|
|
|
|
/**
|
|
* ID для идентификации логов и плеера
|
|
*/
|
|
id: Number,
|
|
}
|
|
``` |