1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-flv-js

Клонировать/Скачать
api.md 16 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 04:51 6fb450f

API flv.js

В данном документе используются определения, подобные TypeScript, для описания интерфейсов.

Интерфейсы

flv.js экспортирует все интерфейсы через объект flvjs, который доступен в глобальном контексте window.

Доступ к объекту flvjs также можно получить с помощью require или ES6 import.

Функции:

Классы:

Перечисления:

flvjs.createPlayer()

function createPlayer(mediaDataSource: MediaDataSource, config?: Config): Player;

Создаёт экземпляр проигрывателя в соответствии с полем type, указанным в mediaDataSource, с опциональным config.

MediaDataSource

Поле Тип Описание
type string Указывает тип медиа, 'flv' или 'mp4'
isLive? boolean Указывает, является ли источник данных живым потоком
cors? boolean Указывает, следует ли включить CORS для http-запросов
withCredentials? boolean Указывает, следует ли выполнять http-запросы с файлами cookie
hasAudio? boolean Указывает, есть ли в потоке аудиодорожка
hasVideo? boolean Указывает, есть ли в потоке видеодорожка
duration? number Указывает общую продолжительность медиа в миллисекундах
filesize? number Указывает общий размер файла медиа в байтах
url? string Указывает URL медиа, может начинаться с 'https(s)' или 'ws(s)' (WebSocket)
segments? Array<MediaSegment> Дополнительное поле для многочастного воспроизведения, см. MediaSegment

Если поле segments существует, трансмьюксер будет рассматривать этот MediaDataSource как многочастный источник.

В многочастном режиме поля duration, filesize и url в структуре MediaDataSource будут игнорироваться.

MediaSegment

Поле Тип Описание
duration number Обязательное поле, указывает длительность сегмента в миллисекундах
filesize? number Дополнительное поле, указывает размер сегмента в байтах
url string Обязательное поле, указывает URL сегмента

Config

Поле Тип По умолчанию Описание
enableWorker? boolean false Включить отдельный поток для трансмьюкса (нестабилен на данный момент)
enableStashBuffer? boolean true Включить буфер ввода-вывода. Установите значение false, если вам нужна работа в реальном времени (минимальная задержка) для воспроизведения живого потока, но может возникнуть сбой, если есть джиттер сети.
stashInitialSize? number 384KB Указывает начальный размер буфера ввода-вывода. По умолчанию — 384КБ. Укажите подходящий размер, чтобы улучшить время загрузки/поиска видео.
isLive? boolean false То же самое, что и isLive в MediaDataSource, игнорируется, если было установлено в структуре MediaDataSource.
lazyLoad? boolean true Прервать HTTP-соединение, если данных достаточно для воспроизведения.
lazyLoadMaxDuration? number 3 * 60 Указывает, сколько секунд данных нужно сохранить для lazyLoad.
lazyLoadRecoverDuration? number 30 Определяет границу времени восстановления lazyLoad в секундах.
--- --- ---
deferLoadAfterSourceOpen? boolean true Следует ли выполнять загрузку после срабатывания события sourceopen объекта MediaSource. В Chrome вкладки, которые были открыты в фоновом режиме, могут не запускать событие sourceopen, пока вы не переключитесь на эту вкладку.
autoCleanupSourceBuffer boolean false Выполнять ли автоматическую очистку SourceBuffer.
autoCleanupMaxBackwardDuration number 3 * 60 Когда длительность обратного буфера превышает это значение (в секундах), выполнять автоматическую очистку для SourceBuffer.
autoCleanupMinBackwardDuration number 2 * 60 Указывает продолжительность в секундах, которую следует зарезервировать для обратного буфера при автоматической очистке.
fixAudioTimestampGap boolean true Заполняет тихие аудиокадры, чтобы избежать рассинхронизации звука и видео при обнаружении большого разрыва в метках времени аудио.
accurateSeek? boolean false Точная перемотка к любому кадру, не ограничиваясь только кадрами IDR видео, но может быть немного медленнее. Доступно в Chrome > 50, FireFox и Safari.
seekType? string 'range' 'range' использует запрос диапазона для поиска, или 'param' добавляет параметры в URL для указания диапазона запроса.
seekParamStart? string 'bstart' Указывает имя параметра начала поиска для seekType = 'param'.
seekParamEnd? string 'bend' Указывает имя параметра конца поиска для seekType = 'param'.
rangeLoadZeroStart? boolean false Отправлять Range: bytes=0- для первой загрузки, если используется поиск по диапазону.
customSeekHandler? object undefined Указывает пользовательский обработчик поиска.
reuseRedirectedURL? boolean false Повторно использовать перенаправленные URL-адреса 301/302 для последующих запросов, таких как поиск, повторное подключение и т. д.
referrerPolicy? string no-referrer-when-downgrade Указывает политику реферера при использовании FetchStreamLoader.
headers? object undefined Указывает дополнительные заголовки, которые будут добавлены к запросу.

flvjs.isSupported()

function isSupported(): boolean;

Возвращает true, если базовое воспроизведение работает в вашем браузере.

flvjs.getFeatureList()

function getFeatureList(): FeatureList;

Возвращает объект FeatureList, который содержит следующие детали:

FeatureList

Поле Тип Описание
mseFlvPlayback boolean То же, что и flvjs.isSupported(), указывает, работает ли базовое воспроизведение в вашем браузере.
mseLiveFlvPlayback boolean Указывает, работает ли HTTP FLV прямой эфир в вашем браузере.
networkStreamIO boolean Указывает, является ли сетевой загрузчик потоковым.
networkLoaderName string Указывает тип сетевого загрузчика.
nativeMP4H264Playback boolean Указывает, поддерживает ли ваш браузер видеофайлы H.264 MP4 изначально.
nativeWebmVP8Playback boolean Указывает, поддерживает ли ваш браузер файлы WebM VP8 изначально.
nativeWebmVP9Playback boolean Указывает, поддерживает ли ваш браузер файлы WebM VP9 изначально.

flvjs.FlvPlayer

interface FlvPlayer extends Player {}

FLV-плеер, реализующий интерфейс Player. Может быть создан непосредственно с помощью оператора new.

flvjs.NativePlayer

interface NativePlayer extends Player {}

Оболочка проигрывателя для собственного проигрывателя браузера (HTMLVideoElement) без источника MediaSource, которая реализует интерфейс Player. Полезен для воспроизведения одночастных файлов MP4.

interface Player (абстрактный) Интерфейс Player

interface Player { constructor(mediaDataSource: MediaDataSource, config?: Config): Player; destroy(): void; on(event: string, listener: Function): void; off(event: string, listener: Function): void; attachMediaElement(mediaElement: HTMLMediaElement): void; detachMediaElement(): void; load(): void; unload(): void; play(): Promise; pause(): void; type: string; buffered: TimeRanges; duration: number; volume: number; muted: boolean; currentTime: number; mediaInfo: Object; statisticsInfo: Object; }

Интерфейс LoggingControl

interface LoggingControl { forceGlobalTag: boolean; globalTag: string; enableAll: boolean; enableDebug: boolean; enableVerbose: boolean; enableInfo: boolean; enableWarn: boolean; enableError: boolean; getConfig(): Object; applyConfig(config: Object): void; addLogListener(listener: Function): void; removeLogListener(listener: Function): void; }

События (Events)

Серия констант, которые можно использовать с Player.on() / Player.off(). Они требуют префикса flvjs.Events.

Событие Описание
ERROR Произошла ошибка по любой причине во время воспроизведения
LOADING_COMPLETE Входной MediaDataSource полностью буферизован до конца
RECOVERED_EARLY_EOF Во время буферизации произошёл неожиданный сетевой EOF, но автоматически восстановился
MEDIA_INFO Предоставляет техническую информацию о медиа, такую как видео/аудио кодек, битрейт и т. д.
METADATA_ARRIVED Предоставляет метаданные, которые может содержать FLV-файл (поток) с маркером «onMetaData»
SCRIPTDATA_ARRIVED Предоставляет scriptdata (OnCuePoint / OnTextData), который может содержаться в FLV-файле (потоке)
STATISTICS_INFO Предоставляет информацию о статистике воспроизведения, такую как потерянные кадры, текущая скорость и т.д.

Типы ошибок (ErrorTypes)

Возможные ошибки, которые могут возникнуть во время воспроизведения. Они требуют префикса flvjs.ErrorTypes.

Ошибка Описание
NETWORK_ERROR Ошибки, связанные с сетью
MEDIA_ERROR Ошибки, связанные со средством массовой информации (ошибка формата, проблема декодирования и т. д.)
OTHER_ERROR Любая другая неуказанная ошибка

Детали ошибок (ErrorDetails)

Предоставляют более подробное объяснение сетевых и медиа ошибок. Они требуют префикса flvjs.ErrorDetails.

Ошибка Описание
NETWORK_EXCEPTION Связано с любыми другими проблемами с сетью; содержит сообщение
NETWORK_STATUS_CODE_INVALID Связано с недопустимым кодом состояния HTTP, таким как 403, 404 и т. д.
NETWORK_TIMEOUT Связано с проблемами тайм-аута запроса
NETWORK_UNRECOVERABLE_EARLY_EOF Связано с неожиданным сетевым EOF, который не может быть восстановлен
MEDIA_MSE_ERROR Связано с ошибкой MediaSource, такой как проблема декодирования
MEDIA_FORMAT_ERROR Связано с любыми недопустимыми параметрами в медиапотоке
MEDIA_FORMAT_UNSUPPORTED Формат входного MediaDataSource не поддерживается flv.js
MEDIA_CODEC_UNSUPPORTED Медиапоток содержит видео/аудиокодек, который не поддерживается

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-flv-js.git
git@api.gitlife.ru:oschina-mirror/mirrors-flv-js.git
oschina-mirror
mirrors-flv-js
mirrors-flv-js
master