Files

11 KiB
Raw Permalink Blame History

Вот детализированная документация по методам плеера с указанием типов параметров и возвращаемых значений:

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;

/**
 * События
 */

/**
 * Выбор качества - сигнал для теча попытаться изменить качество
 * @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. Управление звуком

/**
 * Устанавливает уровень громкости
 * @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>;