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

vue項(xiàng)目中使用hls.js播放m3u8視頻踩過的坑小結(jié)

 更新時(shí)間:2025年07月23日 09:36:13   作者:LIU雷  
hls.js是一個(gè)用于在瀏覽器中播放HLS(HTTP?Live?Streaming)視頻流的JavaScript庫(kù),這篇文章主要介紹了vue項(xiàng)目中使用hls.js播放m3u8視頻踩過坑的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

video.js 是一個(gè)功能強(qiáng)大的 HTML5 視頻播放器,結(jié)合 videojs-contrib-hls 插件可以輕松實(shí)現(xiàn) .m3u8 格式視頻的播放。

下面展示一些 代碼片。

安裝依賴

npm install video.js videojs-contrib-hls

一、vue項(xiàng)目中代碼片段 ,作為組件使用  

<!-- 視頻 -->
<template>
  <div class="video-box">
    <!-- 視頻播放器 -->
    <video id="video" controls autoplay width="100%" height="100%"></video>
  </div>
</template>

<script>
import Hls from "hls.js";
import popWrapper from "@/components/popWrapper";

export default {
  name: "videoPop",
  data() {
    return {
    };
  },
  created() {},
  mounted() {
    // 攝像頭視頻彈窗傳值
    this.bus.$on("videoOpen", (row) => {
      this.showWtck(row);
    });
  },
  methods: {
    videoClose() {
      this.showOceanVideo = false;
    },
    // 攝像頭視頻彈窗傳值 sxtbh
    async showWtck() {
     this.videoPlay();
      this.showOceanVideo = true;
    },
    videoPlay(index) {
      // 獲取 video 元素
      const video = document.getElementById("video");
      // HLS 流地址
      const videoSrc = 'https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8';//測(cè)試開源地址 注:視頻格式需要時(shí)164的,web端此方法不支持165
      // 檢查是否支持 HLS.js
      if (Hls.isSupported()) {
        // 創(chuàng)建 HLS 實(shí)例
        const hls = new Hls();

        // 加載 .m3u8 文件
        hls.loadSource(videoSrc);

        // 將 HLS 實(shí)例綁定到 video 元素
        hls.attachMedia(video);

        // 監(jiān)聽事件:當(dāng) HLS 清單文件解析完成后自動(dòng)播放
        hls.on(Hls.Events.MANIFEST_PARSED, () => {
          console.log("HLS stream loaded successfully");
          video.play();
        });

        // 監(jiān)聽錯(cuò)誤事件
        hls.on(Hls.Events.ERROR, (event, data) => {
          this.videoPlay()
          console.error("HLS error:", data);
        });
      } else if (video.canPlayType("application/vnd.apple.mpegurl")) {
        // 如果瀏覽器原生支持 HLS(如 Safari)
        video.src = videoSrc;
        video.addEventListener("loadedmetadata", () => {
          console.log("Native HLS playback supported");
          video.play();
        });
      } else {
        alert('您的瀏覽器不支持播放此視頻。')
        console.error("Your browser does not support HLS playback.");
      }
    },
  },
  beforeDestroy() {
  },
};
</script>

<style lang='scss' scoped>
.video-box {
  height: 700px;
  margin-bottom: 30px;
  overflow: auto;
}
</style>

二、以下是H5的Demo可以直接運(yùn)行

直接復(fù)制代碼,驗(yàn)證一下提供方的視頻地址是否有誤

此處踩過坑 265格式web端不能播放,資源格式264可以正常播放

測(cè)試監(jiān)控地址是否可以正常播放 我使用的是工具 VLC media player,我是圖方便在電腦管家下載的

(H265)

h264

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>HLS.js 播放監(jiān)控視頻</title>
  <!-- 引入 hls.js -->
  <script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
  <style>
    body {
      font-family: Arial, sans-serif;
      margin: 0;
      padding: 0;
      display: flex;
      justify-content: center;
      align-items: center;
      height: 100vh;
      background-color: #f4f4f4;
    }
    video {
      max-width: 100%;
      max-height: 100%;
      border: 1px solid #ccc;
      box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    }
  </style>
</head>
<body>
  <div>
    <h1 style="text-align: center;">HLS.js 播放監(jiān)控視頻</h1>
    <!-- 視頻播放器 -->
    <video id="video" controls autoplay width="640" height="360"></video>
  </div>

  <script>
    // 獲取 video 元素
    const video = document.getElementById('video');

    // HLS 流地址
    // const videoSrc = 'https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8';//測(cè)試開源地址
    // const videoSrc = 'http://cmgw-vpc.lechange.com:8888/LCO/9C07128PAG4B9E2/0/1/20250324T021313/openhz0735a494162c4ba6bb287d7b6a5f4bb7.m3u8?source=open';//大華提供地址165
    const videoSrc = 'http://cmgw-vpc.lechange.com:8888/LCO/9C07128PAGC1657/0/0/20250324T015744/openhz136dd7fbc6484a5095579ba383b035bb.m3u8?source=open';//大華提供地址164

    // 檢查是否支持 HLS.js
    if (Hls.isSupported()) {
      // 創(chuàng)建 HLS 實(shí)例
      const hls = new Hls();

      // 加載 .m3u8 文件
      hls.loadSource(videoSrc);

      // 將 HLS 實(shí)例綁定到 video 元素
      hls.attachMedia(video);

      // 監(jiān)聽事件:當(dāng) HLS 清單文件解析完成后自動(dòng)播放
      hls.on(Hls.Events.MANIFEST_PARSED, () => {
        console.log('HLS stream loaded successfully');
        video.play();
      });

      // 監(jiān)聽錯(cuò)誤事件
      hls.on(Hls.Events.ERROR, (event, data) => {
        console.error('HLS error:', data);
      });
    } else if (video.canPlayType('application/vnd.apple.mpegurl')) {
      // 如果瀏覽器原生支持 HLS(如 Safari)
      video.src = videoSrc;
      video.addEventListener('loadedmetadata', () => {
        console.log('Native HLS playback supported');
        video.play();
      });
    } else {
      console.error('Your browser does not support HLS playback.');
    }
  </script>
</body>
</html>

總結(jié) 

到此這篇關(guān)于vue項(xiàng)目中使用hls.js播放m3u8視頻踩過坑的文章就介紹到這了,更多相關(guān)vue hls.js播放m3u8視頻內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • axios全局注冊(cè),設(shè)置token,以及全局設(shè)置url請(qǐng)求網(wǎng)段的方法

    axios全局注冊(cè),設(shè)置token,以及全局設(shè)置url請(qǐng)求網(wǎng)段的方法

    今天小編就為大家分享一篇axios全局注冊(cè),設(shè)置token,以及全局設(shè)置url請(qǐng)求網(wǎng)段的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • Vue綁定對(duì)象與數(shù)組變量更改后無法渲染問題解決

    Vue綁定對(duì)象與數(shù)組變量更改后無法渲染問題解決

    這篇文章主要介紹了Vue綁定對(duì)象與數(shù)組變量更改后無法渲染問題解決,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • vue項(xiàng)目引入antDesignUI組件實(shí)現(xiàn)

    vue項(xiàng)目引入antDesignUI組件實(shí)現(xiàn)

    本文介紹了如何以Vue引入antDesignUI,主要包括下載安裝、配置和引入組件等步驟,通過本文,讀者可以快速了解antDesignUI在Vue中的應(yīng)用,感興趣的可以了解一下
    2023-08-08
  • 一文搞懂Vue3中的ref和reactive

    一文搞懂Vue3中的ref和reactive

    Vue3中ref用于獨(dú)立值或整體替換,reactive用于對(duì)象/數(shù)組的深度響應(yīng),訪問方式不同,解構(gòu)需用toRefs保持響應(yīng),團(tuán)隊(duì)?wèi)?yīng)統(tǒng)一規(guī)范,按需選用,本文給大家介紹Vue3中的ref和reactive,感興趣的朋友一起看看吧
    2025-06-06
  • vue3 實(shí)現(xiàn)牙位圖選擇器的實(shí)例代碼

    vue3 實(shí)現(xiàn)牙位圖選擇器的實(shí)例代碼

    這篇文章主要介紹了vue3 實(shí)現(xiàn)牙位圖選擇器的實(shí)例代碼,代碼簡(jiǎn)單易懂,需要的朋友參考下吧
    2025-04-04
  • vue中的computed?和?vm.$data?原理解析

    vue中的computed?和?vm.$data?原理解析

    這篇文章主要介紹了vue中的computed?和?vm.$data?原理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 使用Vue.js實(shí)現(xiàn)數(shù)據(jù)的雙向綁定

    使用Vue.js實(shí)現(xiàn)數(shù)據(jù)的雙向綁定

    在Vue.js中,雙向數(shù)據(jù)綁定是一項(xiàng)非常強(qiáng)大的功能,它能夠使數(shù)據(jù)和視圖之間保持同步,讓開發(fā)者更加方便地操作數(shù)據(jù),在本文中,我們將介紹如何用Vue.js實(shí)現(xiàn)數(shù)據(jù)的雙向綁定,需要的朋友可以參考下
    2023-04-04
  • Vue 實(shí)現(xiàn)輪播圖功能的示例代碼

    Vue 實(shí)現(xiàn)輪播圖功能的示例代碼

    Vue是一款流行的前端框架,它提供了一系列的工具和組件,使得開發(fā)者可以更加便捷地創(chuàng)建交互式的Web應(yīng)用程序,輪播圖是Web應(yīng)用程序中常見的一種交互式組件,本文將介紹如何使用Vue和第三方組件庫(kù) Element UI實(shí)現(xiàn)輪播圖功能,需要的朋友可以參考下
    2023-05-05
  • VueX?mapGetters獲取Modules中的Getters方式

    VueX?mapGetters獲取Modules中的Getters方式

    這篇文章主要介紹了VueX?mapGetters獲取Modules中的Getters方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue選項(xiàng)卡切換登錄方式小案例

    vue選項(xiàng)卡切換登錄方式小案例

    這篇文章主要為大家詳細(xì)介紹了vue選項(xiàng)卡切換登錄方式小案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09

最新評(píng)論

台北市| 确山县| 宝丰县| 贺兰县| 光泽县| 建水县| 枣强县| 徐汇区| 固始县| 广汉市| 阳曲县| 和林格尔县| 凌海市| 琼海市| 吉首市| 子洲县| 夏河县| 吐鲁番市| 祁门县| 曲周县| 西贡区| 霍林郭勒市| 巴马| 乌鲁木齐市| 滦平县| 延寿县| 墨江| 灌阳县| 邹城市| 东乡县| 新沂市| 香格里拉县| 皋兰县| 丹棱县| 靖安县| 浪卡子县| 会东县| 通榆县| 上思县| 甘德县| 增城市|