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 | 媒體流包含不支持的視頻/音頻編解碼器 |