国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue3中使用TcPlayer實(shí)現(xiàn)視頻監(jiān)控-代碼

這篇具有很好參考價值的文章主要介紹了vue3中使用TcPlayer實(shí)現(xiàn)視頻監(jiān)控-代碼。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1、引入js文件

在index.html頭部引入引入播放器的cdn

<script src="https://cloudcache.tencent-cloud.com/open/qcloud/video/vcplayer/TcPlayer- 2.3.2.js"charset="utf-8"></script>

?2、主要代碼

這里主要是監(jiān)控畫面的布局通過點(diǎn)擊按鈕使用grid布局進(jìn)行切換,tcplayer.js的初始化就不展示了文章來源地址http://www.zghlxwxcb.cn/news/detail-702236.html

<template>
  <div class="videoGroup">
    <div class="top">
      <span>監(jiān)控畫面</span>
      <div>
        <el-button @click="proportionSumbit('1')">1*1</el-button>
        <el-button @click="proportionSumbit('2')">2*2</el-button>
        <el-button @click="proportionSumbit('6')">2*3</el-button>
        <el-button @click="proportionSumbit('3')">3*3</el-button>
      </div>
    </div>
    <!-- 視頻組 -->
    <div
      class="VideoGirus"
      :style="`grid-template-columns:${videoProps.autoNumber};`"
    >
      <div
        v-for="(item, index) in videoProps.Proportion"
        :key="index"
        :class="item.classname"
      >
        <div class="colvideo">
          <div class="bgvideo">
            <div class="titlevideo">
              <span>
                <el-icon><VideoCamera /></el-icon>
                {{ item.title }}
              </span>
              <div style="width: 60px">
                <span style="margin-right: 15px" @click="seeVideo(item)"
                  ><el-icon><FullScreen /></el-icon
                ></span>
                <span @click="closeVideo(item)"
                  ><el-icon><CircleCloseFilled /></el-icon
                ></span>
              </div>
            </div>
            <cviewplayer
              class="cviewplayer"
              :key="videoProps.freshDom"
              :videoUrl="item.videoUrl"
              :index="item.index"
              :tcPlayerType="item.id"
              :isPlay="videoProps.isPlay"
              :data="videodata"
              @PlayClose="PlayClose"
            ></cviewplayer>
          </div>
        </div>
      </div>
    </div>
  </div>
</template>
<script setup>
//視頻列表接口
import { getVideoList } from '@/api/system/video'
import { ref, onMounted, reactive} from 'vue'
//始化化直播播放器組件
import cviewplayer from './components/cviewplayer'
//video
const videoProps = reactive({
  //賦值時間戳達(dá)到刷新的效果
  freshDom: '',
  //數(shù)據(jù)的數(shù)組
  Proportion: [],
  //判斷比例
  autoNumber: 'auto auto',
  //是否播放
  isPlay: false,
})
//videdata
const videodata = reactive([])
//videodisplayScale
const displayScale = ref('2')
//是否查看視頻showVideo
const showVideo = reactive({})
//獲取監(jiān)控列表
const videoList = async () => {
  const res = await getVideoList()
  console.log(res.data, '---')
}
//接收子級傳來的是否播放狀態(tài)
const PlayClose = () => {
  videoProps.isPlay = false
}
//初始化
const fun_into = () => {
  proportionSumbit('2')
}
//播放事件
const VideoPlay = () => {
  videoProps.isPlay = true
}
//視頻比例
const proportionSumbit = (val) => {
  //grid賦值比例的
  displayScale.value = val
  proportion(val)
  videoProps.Proportion = []
  videoProps.freshDom = +new Date()
  if (val == 6) {
    val = 6
  } else {
    val = val * val
  }
  for (var i = 0; i < val; i++) {
    videoProps.Proportion.push({
      id: videodata[i]?.id,
      status: videodata[i]?.status,
      title: videodata[i]?.title,
      videoUrl: videodata[i]?.videoUrl,
      index: i,
      classname: val == 6 && i == 0 ? 'video1' : '',
    })
  }
}
//查看視頻
const seeVideo = (item) => {
  if (displayScale.value == 1) {
    return
  }
  proportion('1')
  videoProps.Proportion = []
  videoProps.freshDom = +new Date()
  videoProps.Proportion = [
    {
      id: item?.id,
      status: item?.status,
      title: item?.title,
      videoUrl: item?.videoUrl,
      index: 1,
      classname: '',
    },
  ]
}
//關(guān)閉視頻
const closeVideo = (item) => {
  if (displayScale.value == 1) {
    return
  }
  proportionSumbit(displayScale.value)
  proportion(displayScale.value)
}
//grid賦值比例的
const proportion = (val) => {
  switch (val) {
    case '1':
      videoProps.autoNumber = 'auto'
      break
    case '2':
      videoProps.autoNumber = 'auto auto'
      break
    case '3':
      videoProps.autoNumber = 'auto auto auto'
      break
    case '4':
      videoProps.autoNumber = 'auto auto auto auto'
      break
    default:
      videoProps.autoNumber = 'auto auto auto'
      break
  }
}

onMounted(() => {
  videoList()
  fun_into()
})
</script>
<style lang="scss" scoped>
.videoGroup {
  height: 100%;
  .top {
    height: 54px;
    line-height: 54px;
    font-size: 16px;
    padding-left: 20px;
    display: flex;
    justify-content: space-between;
    .el-button {
      margin-right: 10px;
    }
  }
  .VideoGirus {
    width: 100%;
    overflow: hidden;
    height: calc(100% - 140px);
    display: grid;
    grid-gap: 10px;
    box-sizing: border-box;
    padding-top: 10px;
    div {
      width: 100%;
      height: 100%;
      .colvideo {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        position: relative;
        .bgvideo {
          padding: 20px;
          padding-top: 0;
          background: rgba(0, 160, 233, 0.1);
        }
        .titlevideo {
          height: 40px;
          line-height: 40px;
          font-size: 16px;
          justify-content: space-between;
          display: flex;
        }
        .cviewplayer {
          position: absolute;
          width: calc(100% - 40px);
          height: calc(99% - 50px);
        }
      }
    }
    .video1 {
      grid-column-start: 1;
      grid-row-start: 1;
      grid-row-end: 3;
      grid-column-end: 3;
    }
  }
  .bottom {
    height: 86px;
    padding-left: 20px;
    line-height: 86px;
  }
}
</style>

?3、視頻監(jiān)控-效果圖

到了這里,關(guān)于vue3中使用TcPlayer實(shí)現(xiàn)視頻監(jiān)控-代碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • vue+flv.js+SpringBoot+websocket實(shí)現(xiàn)視頻監(jiān)控與回放

    vue+flv.js+SpringBoot+websocket實(shí)現(xiàn)視頻監(jiān)控與回放

    需求:vue+springboot的項(xiàng)目,需要在頁面展示出??档挠脖P錄像機(jī)連接的攝像頭的實(shí)時監(jiān)控畫面以及回放功能. 之前項(xiàng)目里是純前端實(shí)現(xiàn)視頻監(jiān)控和回放功能.但是有局限性.就是ip地址必須固定.新的需求里設(shè)備ip不固定.所以必須換一種思路. 通過設(shè)備的主動注冊,讓設(shè)備去主動連接服

    2024年02月02日
    瀏覽(26)
  • VUE+webrtc-streamer 實(shí)現(xiàn)實(shí)時視頻播放(監(jiān)控設(shè)備-rtsp)

    VUE+webrtc-streamer 實(shí)現(xiàn)實(shí)時視頻播放(監(jiān)控設(shè)備-rtsp)

    下圖則啟動成功,此時在瀏覽器訪問127.0.0.1:8000可以看到本機(jī)監(jiān)控畫面 地址:https://github.com/mpromonet/webrtc-streamer/releases 注意:第三步在本機(jī)啟動服務(wù)所以 new WebRtcStreamer(id,serverUrl)中URL傳入127.0.0.1端口可 文章參考鏈接:https://blog.csdn.net/liona_koukou/article/details/126605137

    2024年02月02日
    瀏覽(36)
  • VUE+webrtc-streamer實(shí)現(xiàn)實(shí)時視頻播放(監(jiān)控設(shè)備-rtsp)

    VUE+webrtc-streamer實(shí)現(xiàn)實(shí)時視頻播放(監(jiān)控設(shè)備-rtsp)

    首先說明目前我只完成了本地測試,因還沒確定技術(shù)選型所以暫無項(xiàng)目應(yīng)用,先做一下儲備,后續(xù)項(xiàng)目應(yīng)用的話這篇文章會持續(xù)更新。 監(jiān)控設(shè)備播放效果如下:基于公司環(huán)境測試了大華和??档谋O(jiān)控設(shè)備(H264編碼)可以正確播放 1、下載webrtc-streamer,本機(jī)測試我下載的最新

    2024年02月01日
    瀏覽(27)
  • 使用手機(jī)攝像頭實(shí)現(xiàn)視頻監(jiān)控實(shí)時播放

    視頻監(jiān)控實(shí)時播放的原理與目前較為流行的直播是一致的,所以采用直播的架構(gòu)實(shí)現(xiàn)視頻監(jiān)控實(shí)時播放,流程圖如下: 目前實(shí)時視頻流的傳輸協(xié)議有以下幾種:RTSP、RTMP、HLS、Http-flv。 安卓APP開發(fā)使用HBuilder,而HBuilder內(nèi)置了LivePusher直播推流控件,該控件使用了RTMP協(xié)議,所以

    2023年04月08日
    瀏覽(28)
  • vue中使用EasyPlayer播放監(jiān)控視頻HLS,H265、H264

    vue中使用EasyPlayer播放監(jiān)控視頻HLS,H265、H264

    1.使用npm下載依賴 2.將EasyPlayer-lib.min.js文件、EasyPlayer.wasm文件、libDecoder.wasm文件放置到public下 3.創(chuàng)建components,html代碼如下 4.使用props接收數(shù)據(jù) 5.在父組件中引入,傳遞props中的數(shù)據(jù)即可運(yùn)行即可

    2024年02月03日
    瀏覽(28)
  • vue2中使用WebSDK_V3.3.0(231027)展示監(jiān)控視頻

    vue2中使用WebSDK_V3.3.0(231027)展示監(jiān)控視頻

    1.需要數(shù)據(jù) 2.下載內(nèi)容 WEB3.3控件開發(fā)包 V3.3 下載地址:海康開放平臺 ?3.安裝插件,引入js文件 (1)雙擊HCWebSDKPlugin.exe,安裝插件 (2)引入文件 把這兩個文件放在public下static目錄下,在public的index.html中引入 4.vue代碼--視頻組件 ?當(dāng)前script里面的方法只是當(dāng)前開發(fā)所需,其他

    2024年04月28日
    瀏覽(25)
  • SpringBoot+vue 實(shí)現(xiàn)監(jiān)控視頻rtsp播放(java+Nginx+ffmpeg+flv.js)

    SpringBoot+vue 實(shí)現(xiàn)監(jiān)控視頻rtsp播放(java+Nginx+ffmpeg+flv.js)

    其實(shí)原理就是: 將監(jiān)控通過FFMPEG,推送給Nginx,前端通過Nginx地址拉取視頻,就可以播放了。 1:安裝FFMPEG. 2:下載并且配置nginx. 3:使用java代碼實(shí)現(xiàn)調(diào)用cmd或者linux窗口,并且運(yùn)行操作FFMPEG的命令,進(jìn)行監(jiān)控視頻rtsp格式的推送,推送給nginx. 4:前端寫一個video標(biāo)簽就可以,Src寫nginx的固定地

    2023年04月16日
    瀏覽(21)
  • vue項(xiàng)目業(yè)務(wù)實(shí)現(xiàn),視頻監(jiān)控-文件流,大屏適配方案(v-scale-screen),websocket前端

    vue項(xiàng)目業(yè)務(wù)實(shí)現(xiàn),視頻監(jiān)控-文件流,大屏適配方案(v-scale-screen),websocket前端

    最近把以前的業(yè)務(wù)場景及解決方案整理了一下,具體實(shí)現(xiàn)的工具如下: 監(jiān)控-視頻文件流==video.js + videojs-contrib-hls 大屏適配方案== v-scale-screen websocket==sockjs-client+ webstomp-client 下載video插件, 使用方法 (1)導(dǎo)入 (2)模板中寫入標(biāo)簽 (3)頁面渲染時調(diào)用函數(shù),渲染視頻 option

    2024年02月16日
    瀏覽(25)
  • vue2項(xiàng)目中如何接入視頻監(jiān)控

    vue2項(xiàng)目中如何接入視頻監(jiān)控

    想必各位作為開發(fā)者的程序員,有時候公司會給你安排在項(xiàng)目中實(shí)現(xiàn)視頻實(shí)時監(jiān)控 視頻實(shí)時監(jiān)控功能,在很多領(lǐng)域都廣泛應(yīng)用,能幫我們在各行各業(yè)都解決很多事情,像智慧工地中AI識別(安全帽、在離崗等)、國標(biāo)級聯(lián)(平臺對接政府平臺監(jiān)管中心)、音視頻通話(工地巡檢)等

    2024年02月07日
    瀏覽(24)
  • AI視頻監(jiān)控平臺開發(fā)流程(附源代碼)?。?!

    AI視頻監(jiān)控平臺開發(fā)流程(附源代碼)!??!

    目錄索引 一、 前言 二、 技術(shù)選型 三、 業(yè)務(wù)關(guān)系圖 四、 數(shù)據(jù)庫關(guān)系圖 五、 視頻中臺源代碼 六、 視頻中臺功能明細(xì) 七、 模型測試功能展示 7.1新增本地算法 7.2上傳測試圖片 八、 算法服務(wù)二次開發(fā)流程(贈送算法模型) 九、 實(shí)現(xiàn)代碼及部署說明 十、 其他功能展示 10.1

    2024年02月13日
    瀏覽(101)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包