vue使用video.js依賴接入視頻流((hls(m3u8)、flv))的示例代碼
前端安裝video.js相關(guān)依賴
// video.js npm install video.js // 安裝flv,用于播放 FLV npm install videojs-flvjs-es6 npm install flv.js
組件引入video.js依賴
import videojs from "video.js"; import "videojs-flvjs-es6"; import "video.js/dist/video-js.css";
組件中使用video.js播放視頻
html部分
// 視頻標(biāo)簽容器
<template>
<div style="width: 100%; height: 100%" id="videoBottom">
<video
id="videoPlayer"
class="video-js vjs-fluid vjs-big-play-centered"
style="width: 100%; height: 100%; object-fit: fill"
controls
preload="auto"
muted
autoplay
loop
></video>
</div>
</template>js部分
<script>
import videojs from "video.js";
import "videojs-flvjs-es6";
import "video.js/dist/video-js.css";
export default {
data() {
return {
myVideo: null,
};
},
methods: {
initVideo() {
this.$nextTick(() => {
const options = {
// 初始化默認(rèn)寬高,避免第一次加載閃一下
width: 660,
height: 345,
fullscreen: {
options: { navigationUI: "hide" },
},
techOrder: ["html5", "flvjs"], // 兼容順序
// 配置支持播放hls格式視頻流
html5: {
hls: {
withCredentials: true,
},
},
// 配置支持播放flv格式視頻流
flvjs: {
mediaDataSource: {
isLive: false,
cors: true,
withCredentials: false,
},
},
sources: [
{
src: "https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8",
type: "application/x-mpegURL",
},
],
};
const videElement = document.getElementById(`videoPlayer`);
this.myVideo = videojs(videElement, options, function onPlayerReady() {
videojs.log("播放器準(zhǔn)備好了");
});
});
},
// 重新加載播放器,適用于tab欄切換更換視頻流數(shù)據(jù)
updateVideoPlay() {
const myVideoDiv = document.getElementById("videoBottom");
myVideoDiv.innerHTML =
"<video id='videoPlayer' class='video-js vjs-default-skin vjs-big-play-centered' controls muted autoplay style='width: 100%;height: 100%; object-fit: fill'></video>";
}
},
mounted() {
this.initVideo();
},
destroyed() {
this.myVideo.dispose(); // 銷毀視頻
},
};
</script>sources配置描述(更改type值即可播放對(duì)應(yīng)的視頻格式)
| 格式 | type值 |
| hls(m3u8) | application/x-mpegURL |
| flv | video/x-flv |
效果演示

以上就是vue使用video.js依賴接入視頻流((hls(m3u8)、flv))的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于vue video.js接入視頻流的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
從零開始用webpack構(gòu)建一個(gè)vue3.0項(xiàng)目工程的實(shí)現(xiàn)
這篇文章主要介紹了從零開始用webpack構(gòu)建一個(gè)vue3.0項(xiàng)目工程的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
vue中實(shí)現(xiàn)當(dāng)前時(shí)間echarts圖表時(shí)間軸動(dòng)態(tài)的數(shù)據(jù)(實(shí)例代碼)
這篇文章主要介紹了vue中實(shí)現(xiàn)當(dāng)前時(shí)間echarts圖表時(shí)間軸動(dòng)態(tài)的數(shù)據(jù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10
vue3自定義指令實(shí)現(xiàn)按鈕防抖示例詳解
這篇文章主要為大家介紹了vue3自定義指令實(shí)現(xiàn)按鈕防抖示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
Nuxt3嵌套路由,報(bào)錯(cuò)Failed?to?resolve?component:?NuxtChild的解決
這篇文章主要介紹了Nuxt3嵌套路由,報(bào)錯(cuò)Failed?to?resolve?component:?NuxtChild的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
electron中使用本地?cái)?shù)據(jù)庫的方法詳解
眾所周知,electron是可以開發(fā)桌面端的框架,那我們有一些數(shù)據(jù)不想讓別人看到,只能在自己的電腦上展示時(shí)怎么辦呢,這個(gè)時(shí)候就可以用到本地?cái)?shù)據(jù)庫,本文將以sqlite3為例介紹一下electron如何使用本地?cái)?shù)據(jù)庫2023-10-10
Vue系列之Element?UI表單自定義校驗(yàn)規(guī)則
表單校驗(yàn)是注冊(cè)環(huán)節(jié)中必不可少的操作,表單校驗(yàn)可以提醒用戶填寫數(shù)據(jù)規(guī)則以確保用戶提交數(shù)據(jù)的效性,也可以防止用戶因誤操作而占用服務(wù)器資源,這篇文章主要給大家介紹了關(guān)于Vue系列之Element?UI表單自定義校驗(yàn)規(guī)則的相關(guān)資料,需要的朋友可以參考下2022-09-09
vue+el-table可輸入表格使用上下鍵進(jìn)行input框切換方式
文章介紹了如何在使用Vue和Element UI的el-table組件時(shí),通過上下鍵在輸入框之間切換,并且特別說明了如何在完工數(shù)量這一列中使用上下鍵進(jìn)行切換2025-11-11

