<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)注明出處岛抄。