flv.js 中文API文檔

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 媒體流包含不支持的視頻/音頻編解碼器
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嗅义,一起剝皮案震驚了整個濱河市屏歹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌之碗,老刑警劉巖西采,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異继控,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)胖眷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進(jìn)店門武通,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人珊搀,你說我怎么就攤上這事冶忱。” “怎么了境析?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵囚枪,是天一觀的道長。 經(jīng)常有香客問我劳淆,道長链沼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任沛鸵,我火速辦了婚禮括勺,結(jié)果婚禮上缆八,老公的妹妹穿的比我還像新娘。我一直安慰自己疾捍,他們只是感情好奈辰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著乱豆,像睡著了一般奖恰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宛裕,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天瑟啃,我揣著相機(jī)與錄音,去河邊找鬼续滋。 笑死翰守,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的疲酌。 我是一名探鬼主播蜡峰,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼朗恳!你這毒婦竟也來了湿颅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤粥诫,失蹤者是張志新(化名)和其女友劉穎油航,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體怀浆,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡谊囚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了执赡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片镰踏。...
    茶點(diǎn)故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖沙合,靈堂內(nèi)的尸體忽然破棺而出奠伪,到底是詐尸還是另有隱情,我是刑警寧澤首懈,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布绊率,位于F島的核電站,受9級特大地震影響究履,放射性物質(zhì)發(fā)生泄漏滤否。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一挎袜、第九天 我趴在偏房一處隱蔽的房頂上張望顽聂。 院中可真熱鬧肥惭,春花似錦、人聲如沸紊搪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽耀石。三九已至牵囤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間滞伟,已是汗流浹背揭鳞。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留梆奈,地道東北人野崇。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像亩钟,于是被迫代替她去往敵國和親乓梨。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容