API flv.js
В данном документе используются определения, подобные TypeScript, для описания интерфейсов.
flv.js экспортирует все интерфейсы через объект flvjs
, который доступен в глобальном контексте window
.
Доступ к объекту flvjs
также можно получить с помощью require или ES6 import.
Функции:
Классы:
Перечисления:
function createPlayer(mediaDataSource: MediaDataSource, config?: Config): Player;
Создаёт экземпляр проигрывателя в соответствии с полем type
, указанным в mediaDataSource
, с опциональным config
.
Поле | Тип | Описание |
---|---|---|
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
будут игнорироваться.
Поле | Тип | Описание |
---|---|---|
duration |
number |
Обязательное поле, указывает длительность сегмента в миллисекундах |
filesize? |
number |
Дополнительное поле, указывает размер сегмента в байтах |
url |
string |
Обязательное поле, указывает URL сегмента |
Поле | Тип | По умолчанию | Описание |
---|---|---|---|
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 | Указывает дополнительные заголовки, которые будут добавлены к запросу. |
function isSupported(): boolean;
Возвращает true
, если базовое воспроизведение работает в вашем браузере.
function getFeatureList(): 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 изначально. |
interface FlvPlayer extends Player {}
FLV-плеер, реализующий интерфейс Player
. Может быть создан непосредственно с помощью оператора new
.
interface NativePlayer extends Player {}
Оболочка проигрывателя для собственного проигрывателя браузера (HTMLVideoElement) без источника MediaSource, которая реализует интерфейс Player
. Полезен для воспроизведения одночастных файлов MP4.
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 )