10 KiB
10 KiB
Вот детализированная документация по методам плеера с указанием типов параметров и возвращаемых значений:
1. Основные методы управления
/**
* Регистрирует 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. Управление воспроизведением
/**
* Запускает/возобновляет воспроизведение
* @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. Информация о контенте
/**
* Возвращает текущую позицию
* @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. Управление качеством
/**
* Возвращает доступные качества
* @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;
5. Управление звуком
/**
* Устанавливает уровень громкости
* @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. Управление дорожками
/**
* Возвращает список доступных аудиодорожек
* @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. Буферизация, информация и скорость сети
/**
* Возвращает длину буферизированных данных
* @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. Работа с рекламой
/**
* Проверяет воспроизведение рекламы
* @returns boolean - true если идет рекламный блок
*/
getAdIsPlaying(): boolean;
/**
* Прерывает воспроизведение рекламы
* @returns void
* @throws PlayerError - если реклама не воспроизводится
*/
cancelAdPlayback(): void;
9. Управление интерфейсом
/**
* Проверяет видимость панели управления
* @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. Работа с выделением
/**
* Устанавливает начало выделенного фрагмента
* @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. Работа с событиями
/**
* Добавляет обработчик события
* @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. Уничтожение плеера
/**
* Освобождает ресурсы плеера
* @returns Promise<void> - Решается после полной очистки
*/
destroy(): Promise<void>;