flv.js 中文文檔

<article class="_2rhmJa">

flv.js API

本文檔使用類似TypeScript的定義來描述接口。

接口

flv.js將所有接口都以flvjs對象暴露在全局上下文window中.

flvjs 還可以通過require或ES6導(dǎo)入來訪問對象。

方法:

類:

枚舉:

flvjs.createPlayer()

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

根據(jù)中指定的type字段創(chuàng)建一個播放器實例mediaDataSource(可選)config。

MediaDataSource

Field Type Description
type string 媒體類型,'flv'或'mp4'
isLive? boolean 數(shù)據(jù)源是否為實時流
cors? boolean 是否啟用CORS進(jìn)行http提取
withCredentials? boolean 是否對Cookie進(jìn)行http提取
hasAudio? boolean 流是否有音頻軌道
hasVideo? boolean 流中是否有視頻軌道
duration? number 總媒體持續(xù)時間(以毫秒為單位)
filesize? number 媒體文件的總文件大小,以字節(jié)為單位
url? string 表示媒體URL,可以以'https(s)'或'ws(s)'(WebSocket)開頭
segments? Array<MediaSegment> 多段播放的可選字段,請參見MediaSegment

如果segments存在字段,則transmuxer會將其MediaDataSource視為多部分源。

在多部分模式下,結(jié)構(gòu)中的duration filesize url字段MediaDataSource將被忽略。

MediaSegment

Field Type Description
duration number 必填字段,指示段持續(xù)時間(以毫秒為單位)
filesize? number 可選字段,指示段文件大小(以字節(jié)為單位)
url string 必填字段,指示段文件URL

Config

Field Type Default Description
enableWorker? boolean false 啟用分離的線程進(jìn)行轉(zhuǎn)換(暫時不穩(wěn)定)
enableStashBuffer? boolean true 啟用IO隱藏緩沖區(qū)。如果您需要實時(最小延遲)來進(jìn)行實時流播放,則設(shè)置為false,但是如果網(wǎng)絡(luò)抖動,則可能會停頓。
stashInitialSize? number 384KB 指示IO暫存緩沖區(qū)的初始大小。默認(rèn)值為384KB。指出合適的尺寸可以改善視頻負(fù)載/搜索時間。
isLive? boolean false 同樣要isLive在MediaDataSource,如果忽略已經(jīng)在MediaDataSource結(jié)構(gòu)集合。
lazyLoad? boolean true 如果有足夠的數(shù)據(jù)可播放,則中止http連接。
lazyLoadMaxDuration? number 3 * 60 指示要保留多少秒的數(shù)據(jù)lazyLoad
lazyLoadRecoverDuration? number 30 指示lazyLoad恢復(fù)時間邊界,以秒為單位。
deferLoadAfterSourceOpen? boolean true 在MediaSource sourceopen事件觸發(fā)后加載。在Chrome上,在后臺打開的標(biāo)簽頁可能不會觸發(fā)sourceopen事件,除非切換到該標(biāo)簽頁。
autoCleanupSourceBuffer boolean false 對SourceBuffer進(jìn)行自動清理
autoCleanupMaxBackwardDuration number 3 * 60 當(dāng)向后緩沖區(qū)持續(xù)時間超過此值(以秒為單位)時,請對SourceBuffer進(jìn)行自動清理
autoCleanupMinBackwardDuration number 2 * 60 指示進(jìn)行自動清除時為反向緩沖區(qū)保留的持續(xù)時間(以秒為單位)。
fixAudioTimestampGap boolean true 當(dāng)檢測到較大的音頻時間戳間隙時,請?zhí)畛錈o聲音頻幀,以避免A / V不同步。
accurateSeek? boolean false 精確查找任何幀,不限于視頻IDR幀,但可能會慢一些。可用的Chrome > 50,F(xiàn)ireFox和Safari。
seekType? string 'range' 'range'使用范圍請求進(jìn)行搜索,或'param'在url中添加參數(shù)以指示請求范圍。
seekParamStart? string 'bstart' 指示的搜索起始參數(shù)名稱 seekType = 'param'
seekParamEnd? string 'bend' 指示的搜索結(jié)束參數(shù)名稱 seekType = 'param'
rangeLoadZeroStart? boolean false Range: bytes=0-如果使用范圍查找,則發(fā)送首次負(fù)載
customSeekHandler? object undefined 指示自定義搜索處理程序
reuseRedirectedURL? boolean false 重復(fù)使用301/302重定向的url進(jìn)行子序列請求,例如搜索,重新連接等。
referrerPolicy? string no-referrer-when-downgrade 指示使用FetchStreamLoader時的推薦人策略
headers? object undefined 指示將添加到請求的其他標(biāo)頭

flvjs.isSupported()

function isSupported(): boolean;

如果基本上可以再您的瀏覽器上播放則返回true

flvjs.getFeatureList()

function getFeatureList(): FeatureList;

返回FeatureList具有以下詳細(xì)信息的對象:

FeatureList

Field Type Description
mseFlvPlayback boolean 與flvjs.isSupported()相同,表示您的瀏覽器是否可以進(jìn)行基本播放。
mseLiveFlvPlayback boolean HTTP FLV實時流是否可以在您的瀏覽器上工作。
networkStreamIO boolean 指示網(wǎng)絡(luò)加載程序是否正在流式傳輸。
networkLoaderName string 指示網(wǎng)絡(luò)加載程序類型名稱。
nativeMP4H264Playback boolean 指示您的瀏覽器是否本身支持H.264 MP4視頻文件。
nativeWebmVP8Playback boolean 指示您的瀏覽器是否本機(jī)支持WebM VP8視頻文件。
nativeWebmVP9Playback boolean 指示您的瀏覽器是否本機(jī)支持WebM VP9視頻文件。

flvjs.FlvPlayer

interface FlvPlayer extends Player {}

實現(xiàn)Player接口的FLV播放器??梢酝ㄟ^new操作進(jìn)行創(chuàng)建

flvjs.NativePlayer

interface NativePlayer extends Player {}

Player wrapper for browser's native player (HTMLVideoElement) without MediaSource src, which implements the Player interface. Useful for singlepart MP4 file playback.

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<void>;
    pause(): void;
    type: string;
    buffered: TimeRanges;
    duration: number;
    volume: number;
    muted: boolean;
    currentTime: number;
    mediaInfo: Object;
    statisticsInfo: Object;
}

flvjs.LoggingControl

A global interface which include several static getter/setter to set flv.js logcat verbose level.
一個全局接口,其中包括幾個用于設(shè)置flv.js logcat詳細(xì)級別的靜態(tài)getter / setter。

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;
}

flvjs.Events

一系列可以和 Player.on() / Player.off()一起使用的常數(shù). 它們需要前綴flvjs.Events.

事件 描述
ERROR 播放期間由于任何原因發(fā)生錯誤
LOADING_COMPLETE 輸入MediaDataSource已完全緩沖到結(jié)束
RECOVERED_EARLY_EOF 緩沖期間發(fā)生意外的網(wǎng)絡(luò)EOF,但已自動恢復(fù)
MEDIA_INFO 提供媒體的技術(shù)信息,例如視頻/音頻編解碼器,比特率等。
METADATA_ARRIVED 用“ onMetaData”標(biāo)記提供FLV文件(流)可以包含的元數(shù)據(jù)。
SCRIPTDATA_ARRIVED 提供FLV文件(流)可以包含的腳本數(shù)據(jù)(OnCuePoint / OnTextData)。
STATISTICS_INFO 提供播放統(tǒng)計信息,例如丟幀,當(dāng)前速度等。

flvjs.ErrorTypes

播放期間可能出現(xiàn)的錯誤。它們需要前綴flvjs.ErrorTypes。

錯誤 描述
NETWORK_ERROR 與網(wǎng)絡(luò)有關(guān)的錯誤
MEDIA_ERROR 與媒體有關(guān)的錯誤(格式錯誤,解碼問題等)
OTHER_ERROR 任何其他未指定的錯誤

flvjs.ErrorDetails

針對網(wǎng)絡(luò)和媒體錯誤提供更詳細(xì)的說明。它們需要前綴flvjs.ErrorDetails。

錯誤 描述
NETWORK_EXCEPTION 與網(wǎng)絡(luò)其他任何問題有關(guān);包含一個message
NETWORK_STATUS_CODE_INVALID 與無效的HTTP狀態(tài)代碼(例如403、404等)相關(guān)。
NETWORK_TIMEOUT 相關(guān)超時請求問題
NETWORK_UNRECOVERABLE_EARLY_EOF 與無法恢復(fù)的意外網(wǎng)絡(luò)EOF相關(guān)
MEDIA_MSE_ERROR 與MediaSource的錯誤有關(guān),例如解碼問題
MEDIA_FORMAT_ERROR 與媒體流中的任何無效參數(shù)有關(guān)
MEDIA_FORMAT_UNSUPPORTED flv.js不支持輸入的MediaDataSource格式
MEDIA_CODEC_UNSUPPORTED 媒體流包含不支持的視頻/音頻編解碼器

</article>

4人點贊

日記本

作者:雨翼195
鏈接:http://m.itdecent.cn/p/b58356b465c4
來源:簡書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容