Files

428 lines
11 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Вот детализированная документация по методам плеера с указанием типов параметров и возвращаемых значений:
### 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>;
```