Вот детализированная документация по методам плеера с указанием типов параметров и возвращаемых значений: ### 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 - Решается при успешном старте * @throws PlayerError - При ошибке воспроизведения */ play(): Promise; /** * Приостанавливает воспроизведение * @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 - Решается после полной очистки */ destroy(): Promise; ```