428 lines
11 KiB
Markdown
428 lines
11 KiB
Markdown
Вот детализированная документация по методам плеера с указанием типов параметров и возвращаемых значений:
|
||
|
||
### 1. Основные методы управления
|
||
|
||
```typescript
|
||
/**
|
||
* Регистрирует callback, вызываемый после инициализации плеера
|
||
* @param callback - Функция без аргументов
|
||
* @returns void
|
||
*/
|
||
afterInitialize(callback: () => void): void;
|
||
|
||
/**
|
||
* Проверяет состояние инициализации плеера
|
||
* @returns boolean - true если плеер инициализирован
|
||
*/
|
||
isInitialized(): boolean;
|
||
|
||
/**
|
||
* Возвращает текущий протокол воспроизведения
|
||
* @returns string - 'hls' | 'dash' | 'mss' | 'native'
|
||
*/
|
||
getProtocol(): string;
|
||
|
||
/**
|
||
* Возвращает используемую DRM систему
|
||
* @returns string - 'widevine' | 'playready' | 'fairplay' | null
|
||
*/
|
||
getDrmSystem(): string | null;
|
||
|
||
/**
|
||
* Проверяет поддержку HLS
|
||
* @returns boolean
|
||
*/
|
||
isHlsSupported(): boolean;
|
||
|
||
/**
|
||
* Возвращает список поддерживаемых кодеков
|
||
* @returns string[] - Массив кодеков (например ['avc1.4d401f'])
|
||
*/
|
||
getVideoCodecs(): string[];
|
||
|
||
/**
|
||
* Устанавливает источник воспроизведения
|
||
* @param url - string URL медиапотока
|
||
* @param options - VokaOptions.StreamOptions.IStream {
|
||
* autoplay: boolean
|
||
* drmConfig: IDRMConfig | null
|
||
* metrics: IMetrics | null
|
||
* heartbeat: IHeartbeat | null
|
||
* externalSubtitles: ISubtitle | null
|
||
* }
|
||
* @returns void
|
||
*/
|
||
attachSource(url: string, options?: VokaOptions.StreamOptions.IStream): void;
|
||
```
|
||
|
||
### 2. Управление воспроизведением
|
||
|
||
```typescript
|
||
/**
|
||
* Запускает/возобновляет воспроизведение
|
||
* @returns Promise<void> - Решается при успешном старте
|
||
* @throws PlayerError - При ошибке воспроизведения
|
||
*/
|
||
play(): Promise<void>;
|
||
|
||
/**
|
||
* Приостанавливает воспроизведение
|
||
* @returns void
|
||
*/
|
||
pause(): void;
|
||
|
||
/**
|
||
* Проверяет состояние паузы
|
||
* @returns boolean - true если на паузе
|
||
*/
|
||
getPaused(): boolean;
|
||
|
||
/**
|
||
* Проверяет тип контента
|
||
* @returns boolean - true для live-стрима
|
||
*/
|
||
getIsLive(): boolean;
|
||
|
||
/**
|
||
* Перемещает точку воспроизведения
|
||
* @param seconds - number Целевая позиция (0-длительность)
|
||
* @returns void
|
||
*/
|
||
seek(seconds: number): void;
|
||
```
|
||
|
||
### 3. Информация о контенте
|
||
|
||
```typescript
|
||
/**
|
||
* Возвращает текущую позицию
|
||
* @returns number - Текущее время в секундах
|
||
*/
|
||
getCurrentTime(): number;
|
||
|
||
/**
|
||
* Возвращает длительность контента
|
||
* @returns number - Длительность в секундах
|
||
*/
|
||
getDuration(): number;
|
||
|
||
/**
|
||
* Для live-стримов возвращает UNIX-время текущей позиции
|
||
* @returns number | null - UNIX-время или null для VOD
|
||
*/
|
||
getAbsoluteCurrentTime(): number | null;
|
||
|
||
/**
|
||
* Возвращает временной диапазон live-стрима
|
||
* @returns ITimeRange | null - { start: number, end: number } или null
|
||
*/
|
||
getAbsoluteTimeRange(): ITimeRange | null;
|
||
|
||
/**
|
||
* Проверяет доступность timeshift-функционала
|
||
* @returns boolean - true если timeshift доступен для текущего потока
|
||
*/
|
||
getTimeshiftAvailable(): boolean;
|
||
```
|
||
|
||
### 4. Управление качеством
|
||
|
||
```typescript
|
||
/**
|
||
* Возвращает доступные качества
|
||
* @returns IQuality[] - Массив объектов {
|
||
* index: number
|
||
* bitrate: number | null
|
||
* width: number | null
|
||
* height: number | null
|
||
* }
|
||
*/
|
||
getVideoQualityList(): IQuality[];
|
||
|
||
/**
|
||
* Устанавливает качество воспроизведения
|
||
* @param index - number Индекс качества (-1 для авто)
|
||
* @returns void
|
||
*/
|
||
setSelectedVideoQuality(index: number): void;
|
||
|
||
/**
|
||
* Возвращает индекс текущего выбранного качества
|
||
* @returns number - индекс в массиве качеств (-1 для авто-выбора)
|
||
*/
|
||
getSelectedVideoQuality(): number;
|
||
|
||
/**
|
||
* Возвращает индекс фактически воспроизводимого качества
|
||
* @returns number - индекс качества или -1 если неизвестно
|
||
*/
|
||
getPlayingVideoQuality(): number;
|
||
|
||
/**
|
||
* События
|
||
*/
|
||
|
||
/**
|
||
* Выбор качества - сигнал для теча попытаться изменить качество
|
||
* @paylad { index: number }
|
||
* index – -1 - AUTO; 0 ... n – порядковый номер качества (см getVideoQualityList())
|
||
*/
|
||
'qualitySet'
|
||
|
||
/**
|
||
* Установка контрола выбранного качеста (без команды на изменения для теча)
|
||
* @paylad { index: number }
|
||
* index – -1 - AUTO; 0 ... n – порядковый номер качества (см getVideoQualityList())
|
||
*/
|
||
'qualityUISet'
|
||
|
||
/**
|
||
* Фактическое изменнеи выбранного качества
|
||
* @paylad { index: number }
|
||
* index – -1 - AUTO; 0 ... n – порядковый номер качества (см getVideoQualityList())
|
||
*/
|
||
'qualityChange'
|
||
|
||
/**
|
||
* Сигнал о доступности списка качеств
|
||
* @paylad { }
|
||
*/
|
||
'qualitiesParsed'
|
||
|
||
```
|
||
|
||
### 5. Управление звуком
|
||
|
||
```typescript
|
||
/**
|
||
* Устанавливает уровень громкости
|
||
* @param value - number (0-1)
|
||
* @returns void
|
||
*/
|
||
setVolume(value: number): void;
|
||
|
||
/**
|
||
* Возвращает текущую громкость
|
||
* @returns number (0-1)
|
||
*/
|
||
getVolume(): number;
|
||
|
||
/**
|
||
* Переключает звук
|
||
* @param muted? - boolean Опционально: целевое состояние
|
||
* @returns void
|
||
*/
|
||
mute(muted?: boolean): void;
|
||
|
||
/**
|
||
* Включает звук (снимает mute)
|
||
* @returns void
|
||
*/
|
||
unmute(): void;
|
||
|
||
/**
|
||
* Проверяет состояние звука
|
||
* @returns boolean - true если звук отключен (muted)
|
||
*/
|
||
getMuted(): boolean;
|
||
```
|
||
|
||
### 6. Управление дорожками
|
||
|
||
```typescript
|
||
/**
|
||
* Возвращает список доступных аудиодорожек
|
||
* @returns IAudioTrack[] - массив объектов {
|
||
* id: number,
|
||
* language: string,
|
||
* label: string,
|
||
* enabled: boolean
|
||
* }
|
||
*/
|
||
getAudioTrackList(): IAudioTrack[];
|
||
|
||
/**
|
||
* Возвращает текущую аудиодорожку
|
||
* @returns number - индекс активной дорожки
|
||
*/
|
||
getCurrentAudioTrack(): number;
|
||
|
||
/**
|
||
* Устанавливает аудиодорожку
|
||
* @param index - number индекс дорожки
|
||
* @returns void
|
||
*/
|
||
setCurrentAudioTrack(index: number): void;
|
||
|
||
/**
|
||
* Возвращает список субтитров
|
||
* @returns ISubtitle[] - массив объектов {
|
||
* index: number
|
||
* lang: string
|
||
* label: string
|
||
* }
|
||
*/
|
||
getSubtitlesTrackList(): ISubtitle[];
|
||
|
||
/**
|
||
* Возвращает текущие субтитры
|
||
* @returns number - индекс субтитров (-1 если отключены)
|
||
*/
|
||
getCurrentSubtitlesTrack(): number;
|
||
|
||
/**
|
||
* Устанавливает субтитры
|
||
* @param index - number индекс субтитров (-1 для отключения)
|
||
* @returns void
|
||
*/
|
||
setCurrentSubtitlesTrack(index: number): void;
|
||
```
|
||
|
||
|
||
### 7. Буферизация, информация и скорость сети
|
||
|
||
```typescript
|
||
/**
|
||
* Возвращает длину буферизированных данных
|
||
* @returns number - длина буфера в секундах
|
||
*/
|
||
getBufferLength(): number;
|
||
|
||
/**
|
||
* Проверяет состояние буферизации
|
||
* @returns boolean - true если идет буферизация
|
||
*/
|
||
getBufferingState(): boolean;
|
||
|
||
/**
|
||
* Возвращает текущую скорость сети
|
||
* @returns number - скорость в кбит/с
|
||
*/
|
||
getNetworkBandwidth(): number;
|
||
|
||
/**
|
||
* Возвращает информацию о видео
|
||
* @returns IVideoInfo - {
|
||
* width: number | null
|
||
* height: number | null
|
||
* bitrate: number | null
|
||
* }
|
||
*/
|
||
getCurrentVideoInfo(): IVideoInfo;
|
||
```
|
||
|
||
### 8. Работа с рекламой
|
||
|
||
```typescript
|
||
/**
|
||
* Проверяет воспроизведение рекламы
|
||
* @returns boolean - true если идет рекламный блок
|
||
*/
|
||
getAdIsPlaying(): boolean;
|
||
|
||
/**
|
||
* Прерывает воспроизведение рекламы
|
||
* @returns void
|
||
* @throws PlayerError - если реклама не воспроизводится
|
||
*/
|
||
cancelAdPlayback(): void;
|
||
```
|
||
|
||
### 9. Управление интерфейсом
|
||
|
||
```typescript
|
||
/**
|
||
* Проверяет видимость панели управления
|
||
* @returns boolean - true если controlbar видим
|
||
*/
|
||
getControlbarVisible(): boolean;
|
||
|
||
/**
|
||
* Устанавливает видимость панели управления
|
||
* @param visible - boolean целевое состояние
|
||
* @returns void
|
||
*/
|
||
setControlbarVisibility(visible: boolean): void;
|
||
|
||
/**
|
||
* Проверяет видимость кнопки zoom
|
||
* @returns boolean - true если кнопка видима
|
||
*/
|
||
getZoomButtonVisible(): boolean;
|
||
|
||
/**
|
||
* Проверяет активность режима zoom
|
||
* @returns boolean - true если zoom включен
|
||
*/
|
||
getZoomModeEnabled(): boolean;
|
||
|
||
/**
|
||
* Управляет режимом zoom
|
||
* @param isEnabled - boolean целевое состояние
|
||
* @returns void
|
||
*/
|
||
setZoomModeEnabled(isEnabled: boolean): void;
|
||
```
|
||
|
||
### 10. Работа с выделением
|
||
|
||
```typescript
|
||
/**
|
||
* Устанавливает начало выделенного фрагмента
|
||
* @param seconds - number позиция в секундах
|
||
* @returns void
|
||
*/
|
||
setSelectionStartPos(seconds: number): void;
|
||
|
||
/**
|
||
* Устанавливает конец выделенного фрагмента
|
||
* @param seconds - number позиция в секундах
|
||
* @returns void
|
||
*/
|
||
setSelectionEndPos(seconds: number): void;
|
||
|
||
/**
|
||
* Возвращает текущее выделение
|
||
* @returns ITimeRange | null - { start: number, end: number } или null
|
||
*/
|
||
getSelectionRange(): ITimeRange | null;
|
||
```
|
||
|
||
### 11. Работа с событиями
|
||
|
||
```typescript
|
||
/**
|
||
* Добавляет обработчик события
|
||
* @param name - string Имя события
|
||
* @param handler - (event: PlayerEvent) => void
|
||
* @param context? - any Контекст выполнения
|
||
* @returns void
|
||
*/
|
||
addEventListener(
|
||
name: string,
|
||
handler: (event: PlayerEvent) => void,
|
||
context?: any
|
||
): void;
|
||
|
||
/**
|
||
* Удаляет обработчик
|
||
* @param name - string Имя события
|
||
* @param handler - Функция для удаления
|
||
* @returns void
|
||
*/
|
||
removeEventListener(
|
||
name: string,
|
||
handler: (event: PlayerEvent) => void
|
||
): void;
|
||
```
|
||
|
||
### 7. Уничтожение плеера
|
||
|
||
```typescript
|
||
/**
|
||
* Освобождает ресурсы плеера
|
||
* @returns Promise<void> - Решается после полной очистки
|
||
*/
|
||
destroy(): Promise<void>;
|
||
```
|