flv.js 中文文檔

<article class="_2rhmJa">

flv.js API

本文檔使用類(lèi)似TypeScript的定義來(lái)描述接口喜庞。

接口

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

flvjs 還可以通過(guò)require或ES6導(dǎo)入來(lái)訪問(wèn)對(duì)象筑舅。

方法:

類(lèi):

枚舉:

flvjs.createPlayer()

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

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

MediaDataSource

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

如果segments存在字段叹坦,則transmuxer會(huì)將其MediaDataSource視為多部分源。

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

MediaSegment

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

Config

Field Type Default Description
enableWorker? boolean false 啟用分離的線程進(jìn)行轉(zhuǎn)換(暫時(shí)不穩(wěn)定)
enableStashBuffer? boolean true 啟用IO隱藏緩沖區(qū)扣甲。如果您需要實(shí)時(shí)(最小延遲)來(lái)進(jìn)行實(shí)時(shí)流播放篮赢,則設(shè)置為false,但是如果網(wǎng)絡(luò)抖動(dòng)琉挖,則可能會(huì)停頓启泣。
stashInitialSize? number 384KB 指示IO暫存緩沖區(qū)的初始大小。默認(rèn)值為384KB示辈。指出合適的尺寸可以改善視頻負(fù)載/搜索時(shí)間种远。
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ù)時(shí)間邊界射富,以秒為單位膝迎。
deferLoadAfterSourceOpen? boolean true 在MediaSource sourceopen事件觸發(fā)后加載。在Chrome上胰耗,在后臺(tái)打開(kāi)的標(biāo)簽頁(yè)可能不會(huì)觸發(fā)sourceopen事件限次,除非切換到該標(biāo)簽頁(yè)。
autoCleanupSourceBuffer boolean false 對(duì)SourceBuffer進(jìn)行自動(dòng)清理
autoCleanupMaxBackwardDuration number 3 * 60 當(dāng)向后緩沖區(qū)持續(xù)時(shí)間超過(guò)此值(以秒為單位)時(shí),請(qǐng)對(duì)SourceBuffer進(jìn)行自動(dòng)清理
autoCleanupMinBackwardDuration number 2 * 60 指示進(jìn)行自動(dòng)清除時(shí)為反向緩沖區(qū)保留的持續(xù)時(shí)間(以秒為單位)卖漫。
fixAudioTimestampGap boolean true 當(dāng)檢測(cè)到較大的音頻時(shí)間戳間隙時(shí)费尽,請(qǐng)?zhí)畛錈o(wú)聲音頻幀,以避免A / V不同步羊始。
accurateSeek? boolean false 精確查找任何幀旱幼,不限于視頻IDR幀,但可能會(huì)慢一些突委“芈保可用的Chrome > 50,F(xiàn)ireFox和Safari匀油。
seekType? string 'range' 'range'使用范圍請(qǐng)求進(jìn)行搜索缘缚,或'param'在url中添加參數(shù)以指示請(qǐng)求范圍。
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)行子序列請(qǐng)求桥滨,例如搜索,重新連接等弛车。
referrerPolicy? string no-referrer-when-downgrade 指示使用FetchStreamLoader時(shí)的推薦人策略
headers? object undefined 指示將添加到請(qǐng)求的其他標(biāo)頭

flvjs.isSupported()

function isSupported(): boolean;

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

flvjs.getFeatureList()

function getFeatureList(): FeatureList;

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

FeatureList

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

flvjs.FlvPlayer

interface FlvPlayer extends Player {}

實(shí)現(xiàn)Player接口的FLV播放器叮阅。可以通過(guò)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.
一個(gè)全局接口泣特,其中包括幾個(gè)用于設(shè)置flv.js logcat詳細(xì)級(jí)別的靜態(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ā)生錯(cuò)誤
LOADING_COMPLETE 輸入MediaDataSource已完全緩沖到結(jié)束
RECOVERED_EARLY_EOF 緩沖期間發(fā)生意外的網(wǎng)絡(luò)EOF,但已自動(dòng)恢復(fù)
MEDIA_INFO 提供媒體的技術(shù)信息状您,例如視頻/音頻編解碼器勒叠,比特率等。
METADATA_ARRIVED 用“ onMetaData”標(biāo)記提供FLV文件(流)可以包含的元數(shù)據(jù)膏孟。
SCRIPTDATA_ARRIVED 提供FLV文件(流)可以包含的腳本數(shù)據(jù)(OnCuePoint / OnTextData)眯分。
STATISTICS_INFO 提供播放統(tǒng)計(jì)信息,例如丟幀柒桑,當(dāng)前速度等弊决。

flvjs.ErrorTypes

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

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

flvjs.ErrorDetails

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

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

</article>

4人點(diǎn)贊

日記本

作者:雨翼195
鏈接:http://www.reibang.com/p/b58356b465c4
來(lái)源:簡(jiǎn)書(shū)
著作權(quán)歸作者所有比驻。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處岛抄。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末别惦,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子夫椭,更是在濱河造成了極大的恐慌掸掸,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蹭秋,死亡現(xiàn)場(chǎng)離奇詭異扰付,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)仁讨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)羽莺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人洞豁,你說(shuō)我怎么就攤上這事盐固。” “怎么了丈挟?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵刁卜,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我曙咽,道長(zhǎng)蛔趴,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任例朱,我火速辦了婚禮孝情,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘洒嗤。我一直安慰自己箫荡,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布烁竭。 她就那樣靜靜地躺著菲茬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上婉弹,一...
    開(kāi)封第一講書(shū)人閱讀 52,328評(píng)論 1 310
  • 那天睬魂,我揣著相機(jī)與錄音,去河邊找鬼镀赌。 笑死氯哮,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的商佛。 我是一名探鬼主播喉钢,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼良姆!你這毒婦竟也來(lái)了肠虽?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤玛追,失蹤者是張志新(化名)和其女友劉穎税课,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體痊剖,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡韩玩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了陆馁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片找颓。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖叮贩,靈堂內(nèi)的尸體忽然破棺而出击狮,到底是詐尸還是另有隱情,我是刑警寧澤妇汗,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布帘不,位于F島的核電站说莫,受9級(jí)特大地震影響杨箭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜储狭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一互婿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧辽狈,春花似錦慈参、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春壮锻,著一層夾襖步出監(jiān)牢的瞬間琐旁,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工猜绣, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留灰殴,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓掰邢,卻偏偏與公主長(zhǎng)得像牺陶,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子辣之,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

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