如果你監(jiān)聽(tīng)NETWORK_ERROR監(jiān)聽(tīng)不到魔眨,不要強(qiáng)求
我不知道怎么回事卵迂,這種監(jiān)聽(tīng)器監(jiān)聽(tīng)不到:
this.flvPlayer.on(flvjs.ErrorTypes.NETWORK_ERROR, () => {
console.log('NETWORK_ERROR');
});
網(wǎng)上搜了搜济锄,改用'error'事件是可以的,它的err參數(shù)是一個(gè)字符串餐抢,會(huì)告訴你是網(wǎng)絡(luò)錯(cuò)誤還是媒體錯(cuò)誤等现使。于是乎低匙,湊合用吧。
this.flvPlayer.on('error', err => {
console.log('err', err);
});
在vue的beforeDestroy周期要執(zhí)行this.flvPlayer.destroy()
強(qiáng)烈建議執(zhí)行這一句碳锈。
在視頻上方中央附加按鈕
比如附加一個(gè)“重新播放”按鈕顽冶。
首先給<video>
和這個(gè)按鈕加一個(gè)容器,比如<div style="position: relative"></div>
售碳。
按鈕要寫在<video>
的下方强重。
然后給按鈕附加樣式:
width: 70px;
height: 40px;
margin: auto !important;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
這也是水平垂直居中的一個(gè)極強(qiáng)兼容性的方案,缺點(diǎn)是必須聲明width和height贸人。
銷毀播放器
當(dāng)只需要銷毀播放器间景,或是在原組件上播放新的視頻地址,那么一定要先銷毀原播放器艺智。
根據(jù)摸索倘要,必須是這種寫法,不然會(huì)有莫名報(bào)錯(cuò):
this.flvPlayer.pause()
this.flvPlayer.unload()
this.flvPlayer.detachMediaElement()
this.flvPlayer.destroy()
this.flvPlayer = null