最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue實(shí)現(xiàn)監(jiān)控視頻直播的示例代碼

 更新時(shí)間:2022年05月15日 09:09:06   作者:踏行JAVA  
本文主要介紹了vue實(shí)現(xiàn)監(jiān)控視頻直播的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

要想使用videojs我們勢(shì)必是需要安裝videojs的, 而且在生產(chǎn)環(huán)境中我們也需要依賴它, 所以如下

npm: ?npm install video.js -S
npm install videojs-flash videojs-contrib-hls -S

我們打開Vue工程中的主入口main.js進(jìn)行引入

// 引入videojs
import Video from 'video.js';
import 'video.js/dist/video-js.css';
Vue.prototype.$video = Video; 
import hls from 'videojs-contrib-hls';
Vue.use(hls); // 要播放hls流

創(chuàng)建監(jiān)控視頻九宮格

<template>
? <div class="cell">

? ? <div class="cell-player">
? ? ? <div :class="cellClass(i)" v-for="i in cellCount" :key="i">
? ? ? ? <playVideo :video="videoInfo[i]" v-if="cellCount != 6"></playVideo>
? ? ? ? <playVideo :video="videoInfo[i]" v-if="cellCount == 6 && i != 2 && i != 3"></playVideo>
? ? ? ? <template v-if="cellCount == 6 && i == 2">
? ? ? ? ? <div class="cell-player-6-2-cell">
? ? ? ? ? ? <playVideo :video="videoInfo[i]"></playVideo>
? ? ? ? ? ? <playVideo :video="videoInfo[++i]"></playVideo>
? ? ? ? ? </div>
? ? ? ? </template>
? ? ? </div>
? ? </div>
? ? <div class="cell-tool">
? ? ? <div class="bk-button-group">
<!-- ? ? ? ?<el-button @click="cellCount = 1" size="small">1</el-button>-->
? ? ? ? <el-button @click="cellCount = 4" size="small">4</el-button>
<!-- ? ? ? ?<el-button @click="cellCount = 6" size="small">6</el-button>-->
? ? ? ? <el-button @click="cellCount = 9" size="small">9</el-button>
<!-- ? ? ? ?<el-button @click="cellCount = 16" size="small">16</el-button>-->
? ? ? </div>
? ? </div>
? </div>
</template>

<script>
? import playVideo from '@/views/test/playVideo'

? export default {
? ? name: 'dashboard',
? ? components: {
? ? ? playVideo
? ? },
? ? data() {
? ? ? return {
? ? ? ? videoInfo: [
? ? ? ? ? {url: "", index: 0, name: "測(cè)試1"},
? ? ? ? ? {url: "http://hls01open.ys7.com/openlive/699a3134f0864d81a72s5d84ded3180d81.m3u8", index: 1, name: "測(cè)試1"},
? ? ? ? ? {url: "http://hls01open.ys7.com/openlive/699a3134f0864d81a725sd84ded3180d81.m3u8", index: 2, name: "測(cè)試2"},
? ? ? ? ? {url: "http://hls01open.ys7.com/openlive/699a3134f0864d81a7s25d84ded3180d81.m3u8", index: 3, name: "測(cè)試3"},
? ? ? ? ? {url: "http://hls01open.ys7.com/openlive/b27fa374e9d749ddb22bs4a12e843a3131.m3u8", index: 10, name: "測(cè)試4"},
? ? ? ? ? {url: "http://hls01open.ys7.com/openlive/699a3134f0864d81a7s2s5d84ded3180d8.m3u8", index: 4, name: "測(cè)試5"},
? ? ? ? ? {url: "http://hls01open.ys7.com/openlive/699a3134f0864d81a725sd84ded3180d8.m3u8", index: 5, name: "測(cè)試6"},
? ? ? ? ? {url: "http://hls01open.ys7.com/openlive/699a3134f0864d81a725sd84ded31280d8.m3u8", index: 6, name: "測(cè)試7"},
? ? ? ? ? {url: "http://hls01open.ys7.com/openlive/699a3134f0864d81a725sd84ded33180d8.m3u8", index: 7, name: "測(cè)試8"},
? ? ? ? ? {url: "http://hls01open.ys7.com/openlive/699a3134f0864d81a725sd84ded31480d8.m3u8", index: 8, name: "測(cè)試9"},


? ? ? ? ],
? ? ? ? cellCount: 9
? ? ? }
? ? },
? ? methods: {},
? ? computed: {
? ? ? cellClass() {
? ? ? ? return function (index) {
? ? ? ? ? switch (this.cellCount) {
? ? ? ? ? ? case 1:
? ? ? ? ? ? ? return ['cell-player-1']
? ? ? ? ? ? case 4:
? ? ? ? ? ? ? return ['cell-player-4']
? ? ? ? ? ? case 6:
? ? ? ? ? ? ? if (index == 1)
? ? ? ? ? ? ? ? return ['cell-player-6-1']
? ? ? ? ? ? ? if (index == 2)
? ? ? ? ? ? ? ? return ['cell-player-6-2']
? ? ? ? ? ? ? if (index == 3)
? ? ? ? ? ? ? ? return ['cell-player-6-none']
? ? ? ? ? ? ? return ['cell-player-6']
? ? ? ? ? ? case 9:
? ? ? ? ? ? ? return ['cell-player-9']
? ? ? ? ? ? case 16:
? ? ? ? ? ? ? return ['cell-player-16']
? ? ? ? ? ? default:
? ? ? ? ? ? ? break;
? ? ? ? ? }
? ? ? ? }
? ? ? },
? ? },
? }
</script>
<style>
? .cell-tool {
? ? height: 40px;
? ? line-height: 30px;
? ? padding: 0 7px;
? }
? .cell-player {
? ? flex: 1;
? ? display: flex;
? ? flex-wrap: wrap;
? ? justify-content: space-between;
? }
? .cell-player-4 {
? ? width: 50%;
? ? height: 50% !important;
? ? box-sizing: border-box;
? }

? .cell-player-1 {
? ? width: 100%;
? ? box-sizing: border-box;
? }

? .cell-player-6-1 {
? ? width: 66.66%;
? ? height: 66.66% !important;
? ? box-sizing: border-box;
? }
? .cell-player-6-2 {
? ? width: 33.33%;
? ? height: 66.66% !important;
? ? box-sizing: border-box;
? ? display: flex;
? ? flex-direction: column;
? }
? .cell-player-6-none {
? ? display: none;
? }
? .cell-player-6-2-cell {
? ? width: 100%;
? ? height: 50% !important;
? ? box-sizing: border-box;
? }
? .cell-player-6 {
? ? width: 33.33%;
? ? height: 33.33% !important;
? ? box-sizing: border-box;
? }
? .cell-player-9 {
? ? width: 33.33%;
? ? height: 33.33% !important;
? ? box-sizing: border-box;
? }
? .cell-player-16 {
? ? width: 25%;
? ? height: 25% !important;
? ? box-sizing: border-box;
? }
? .cell {
? ? display: flex;
? ? flex-direction: column;
? ? height: 100%;
? }

</style>

創(chuàng)建視頻容器

雖然是遍歷視頻容器組件,但是監(jiān)控視頻只播放第一個(gè),所以這里創(chuàng)建視頻容器時(shí),需要保證容器id不一致。

<template>
<div class="player">
? <div>{{video.name}}</div>
? <video :id='"A"+video.index'
? ? ? ? ?style="width: 100%;"
? ? ? ? ?class="video-js vjs-default-skin vjs-big-play-centered ?"> </video>
</div>
</template>

<script>
? export default {
? ? name: "playVideo",
? ? props: {
? ? ? video: {
? ? ? ? url: "",
? ? ? ? index:0,
? ? ? }
? ? },
? ? data() {return {}},
? ? mounted() {
? ? ? this.initVideoPlayer();
? ? },
? ? methods: {
? ? ? initVideoPlayer() {
? ? ? ? var that=this;
? ? ? ? var id="#A"+this.video.index;
? ? ? ? ? const currentInstance = that.$video(document.querySelector(id),{
? ? ? ? ? ? autoplay:true,
? ? ? ? ? ? controls:true
? ? ? ? ? }).src({
? ? ? ? ? ? src: that.video.url,
? ? ? ? ? ? type: 'application/x-mpegURL',
? ? ? ? ? })
? ? ? },
? ? }
? }
</script>
<style scoped>
? .player ?{
? ? background-color: black;
? ? width: 100%;
? ? height: 100%;
? ? border: 1px solid white;
? ? color: white;
? ? text-align: center;
? }
</style>

到此這篇關(guān)于vue實(shí)現(xiàn)監(jiān)控視頻直播的示例代碼的文章就介紹到這了,更多相關(guān)vue 監(jiān)控視頻直播內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue列表如何實(shí)現(xiàn)滾動(dòng)到指定位置樣式改變效果

    Vue列表如何實(shí)現(xiàn)滾動(dòng)到指定位置樣式改變效果

    這篇文章主要介紹了Vue列表實(shí)現(xiàn)滾動(dòng)到指定位置樣式改變效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 大前端代碼重構(gòu)之事件攔截iOS?Flutter?Vue示例分析

    大前端代碼重構(gòu)之事件攔截iOS?Flutter?Vue示例分析

    這篇文章主要為大家介紹了大前端代碼重構(gòu)之事件攔截iOS?Flutter?Vue示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • vue中mapbox地圖顯示一半的問(wèn)題及解決方法

    vue中mapbox地圖顯示一半的問(wèn)題及解決方法

    在vue中創(chuàng)建mapbox地圖,地圖只顯示一般,查看瀏覽器開發(fā)者工具,發(fā)現(xiàn)將canvas.mapboxgl-canvas 的position:absolute去掉就解決了,今天小編通過(guò)本文給大家分享詳細(xì)過(guò)程,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • ant-design-vue 實(shí)現(xiàn)表格內(nèi)部字段驗(yàn)證功能

    ant-design-vue 實(shí)現(xiàn)表格內(nèi)部字段驗(yàn)證功能

    這篇文章主要介紹了ant-design-vue 實(shí)現(xiàn)表格內(nèi)部字段驗(yàn)證功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Vue.js 插件開發(fā)詳解

    Vue.js 插件開發(fā)詳解

    本文會(huì)通過(guò)一個(gè)簡(jiǎn)單的vue-toast插件,來(lái)幫助了解掌握插件的開發(fā)和使用。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-03-03
  • el-table實(shí)現(xiàn)給每行添加loading效果案例

    el-table實(shí)現(xiàn)給每行添加loading效果案例

    這篇文章主要介紹了el-table實(shí)現(xiàn)給每行添加loading效果案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 解決Antd輸入框卡頓問(wèn)題以及Pubsub.js的使用方式

    解決Antd輸入框卡頓問(wèn)題以及Pubsub.js的使用方式

    這篇文章主要介紹了解決Antd輸入框卡頓問(wèn)題以及Pubsub.js的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Vue項(xiàng)目中安裝依賴npm?install一直報(bào)錯(cuò)的解決過(guò)程

    Vue項(xiàng)目中安裝依賴npm?install一直報(bào)錯(cuò)的解決過(guò)程

    這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目中安裝依賴npm?install一直報(bào)錯(cuò)的解決過(guò)程,要解決NPM安裝依賴報(bào)錯(cuò),首先要分析出錯(cuò)誤的原因,文中將解決的過(guò)程介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • vue.js父子組件傳參的原理與實(shí)現(xiàn)方法

    vue.js父子組件傳參的原理與實(shí)現(xiàn)方法

    這篇文章主要介紹了vue.js父子組件傳參的原理與實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了vue.js父子組件傳參的基本原理、實(shí)現(xiàn)方法與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2023-04-04
  • 簡(jiǎn)單了解Vue computed屬性及watch區(qū)別

    簡(jiǎn)單了解Vue computed屬性及watch區(qū)別

    這篇文章主要介紹了通過(guò)實(shí)例解析Vue computed屬性及watch區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07

最新評(píng)論

思南县| 阿图什市| 龙泉市| 石门县| 文山县| 阳高县| 霍林郭勒市| 丹东市| 乌海市| 铅山县| 分宜县| 龙海市| 邵阳县| 方城县| 兴义市| 稻城县| 湘乡市| 云阳县| 丰城市| 兴城市| 拉孜县| 林甸县| 仁布县| 沛县| 江华| 江陵县| 宝清县| 会东县| 遵化市| 长顺县| 临西县| 五莲县| 大竹县| 饶阳县| 平邑县| 曲靖市| 宁城县| 宜丰县| 马尔康县| 呼伦贝尔市| 衡山县|