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

前端vue播放m3u8、flv、mp4視頻的方法示例

 更新時(shí)間:2023年07月20日 11:12:20   作者:NIshihara  
這篇文章主要給大家介紹了關(guān)于前端vue播放m3u8、flv、mp4視頻的方法,隨著前端大屏頁(yè)面的逐漸壯大,客戶的需求也越來(lái)越多,大屏上面展示的事物也越來(lái)越豐富,需要的朋友可以參考下

1、播放m3u8格式視頻

安裝依賴

npm install video.js --save // 視頻播放器插件
npm install videojs-contrib-hls --save // 播放hls流插件

頁(yè)面引入插件

import videojs from "video.js";
import "video.js/dist/video-js.css";

頁(yè)面中的使用

<template>
  <div class="myVideo">
    <video id="videoPlayer" class="video-js vjs-default-skin" controls playsinline autoplay="autoplay" width="500px">
      <source :src="attachmentLink" type="application/x-mpegURL" />
    </video>
  </div>
</template>
<script>
import videojs from "video.js";
import "video.js/dist/video-js.css";
export default {
  data() {
    return {
      dp: null,
      options: {
      	playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度
        aspectRatio:'16:9',
        notSupportedMessage: '此視頻暫無(wú)法播放,請(qǐng)稍后再試', //允許覆蓋Video.js無(wú)法播放媒體源時(shí)顯示的默認(rèn)信息。
        autoplay: false, // 設(shè)置自動(dòng)播放
        muted: true, // 設(shè)置了它為true,才可實(shí)現(xiàn)自動(dòng)播放,同時(shí)視頻也被靜音(Chrome66及以上版本,禁止音視頻的自動(dòng)播放)
        preload: "auto", // 預(yù)加載
        controls: true, // 顯示播放的控件
      },
      attachmentLink: "https://e-sign.dms.t.cn-np.com/files/m3u8_file/c4b94118-3c8d-4410-9987-985c2b44c278/c4b94118-3c8d-4410-9987-985c2b44c278.m3u8",
    };
  },
  mounted() {
   // 使用 $nextTick 解決vedio報(bào)錯(cuò)  The element or ID supplied is not valid. (videojs)
    this.$nextTick(() => {
      this.loadVideo();
    });
  },
  methods: {
    loadVideo() {
      this.dp = videojs("videoPlayer", this.options);
      // 也可以使用以下方式給vedio設(shè)置 src
      // this.db.src([
      //   {
      //     src: "https://e-sign.dms.t.cn-np.com/files/m3u8_file/c4b94118-3c8d-4410-9987-985c2b44c278/c4b94118-3c8d-4410-9987-985c2b44c278.m3u8", // 地址
      //     type: "application/x-mpegURL", // 告訴videojs,這是一個(gè)hls流
      //   },
      // ]);
    },
    // 銷毀
    beforeDestroy() {
      if (this.dp) {
        this.dp.dispose(); // dispose()會(huì)直接刪除Dom元素
      }
    },
  },
};
</script>
<style lang="less" scoped>
.video-box {
  width: 100%;
  max-width: 500px;
  max-height: 500px;
}
// 暫停播放按鈕居中
::v-deep .video-js .vjs-big-play-button {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
</style>

2、flv格式的方案來(lái)播放視頻

簡(jiǎn)介:flv.js是 HTML5 Flash 視頻(FLV)播放器,純?cè)?JavaScript 開發(fā),沒有用到 Flash。由 bilibili 網(wǎng)站開源。

開源地址: https://github.com/Bilibili/flv.js/

安裝依賴

npm install --save flv.js頁(yè)面引入插件

import flvjs from 'flv.js'

頁(yè)面中的使用

<template>
  <div class="preview">
    <div class="videoArea">
      <video id="videoElement" crossOrigin="anonymous" controls autoplay muted width="100%" height="800px"></video>
    </div>
  </div>
</template>
<script>
  import flvjs from 'flv.js'
  export default {
    data() {
      return {
        isPlay: false,
        player: null,
      };
    },
    methods: {
       // 設(shè)置視頻配置(注意:createVideo應(yīng)放在異步函數(shù)里或mounted之后,不可在created里直接加載,否則不生效)
       createVideo() {
        if (flvjs.isSupported()) {
          var videoElement = document.getElementById('videoElement');
          this.player= flvjs.createPlayer({
            type: 'flv',
            isLive: true,
            hasAudio: false,
            url: 'https://sf1-hscdn-tos.pstatp.com/obj/media-fe/xgplayer_doc_video/flv/xgplayer-demo-360p.flv'		// 自己的flv視頻流
          },{
            cors: true, // 是否跨域
            // enableWorker: true, // 是否多線程工作
            enableStashBuffer: false, // 是否啟用緩存
            stashInitialSize: 128, // 緩存大小(kb)  默認(rèn)384kb
            autoCleanupSourceBuffer: true // 是否自動(dòng)清理緩存
          });
          this.player.attachMediaElement(videoElement);//掛載元素
          this.player.load();//加載流
          this.player.play();//播放流
        }
        // 報(bào)錯(cuò)重連
         this.player.on(flvjs.Events.ERROR, (err, errdet) => {
          // 參數(shù) err 是一級(jí)異常,errdet 是二級(jí)異常
          if (err == flvjs.ErrorTypes.MEDIA_ERROR) {
            console.log('媒體錯(cuò)誤')
            if(errdet == flvjs.ErrorDetails.MEDIA_FORMAT_UNSUPPORTED) {
              console.log('媒體格式不支持')
            }
          }
          if (err == flvjs.ErrorTypes.NETWORK_ERROR) {
            console.log('網(wǎng)絡(luò)錯(cuò)誤')
            if(errdet == flvjs.ErrorDetails.NETWORK_STATUS_CODE_INVALID) {
              console.log('http狀態(tài)碼異常')
            }
          }
          if(err == flvjs.ErrorTypes.OTHER_ERROR) {
            console.log('其他異常:', errdet)
          }
           if (this.player) {
             this.destoryVideo()
             this.createVideo()
           }
         })
      },
      destoryVideo(){
        if (this.player) {
          this.player.pause();// 暫停播放數(shù)據(jù)流
          this.player.unload();// 取消數(shù)據(jù)流加載
          this.player.detachMediaElement();// 將播放實(shí)例從節(jié)點(diǎn)中取出
          this.player.destroy(); // 銷毀播放實(shí)例
          this.player= null;
        }
      }
    },
    mounted() {
      this.$nextTick(() => {
        this.createVideo()
      })
    },
    beforeDestroy() {
      this.destoryVideo()
	  },
  };
</script>
<style lang="scss" scoped>
</style>

3、mp4格式的方案來(lái)播放視頻

<html>
  <head>
    <title>camera</title>
    <script type="text/javascript">
      function play() {
        var video = document.getElementById("video");
        video.play();
      }  
    </script>
  </head>
  <body>
    <video 
    	id="video" 
    	width="640" 
    	height="360"  
    	poster="/video/cover.png"http:// 視頻封面
    	controls //顯示標(biāo)準(zhǔn)的 HTML5 視頻/音頻播放器控制條、控制按鈕。
    	autoplay //讓文件自動(dòng)播放。
    	loop //讓文件循環(huán)播放。
    	preload="auto" //屬性是用來(lái)緩存大體積文件的。它有三個(gè)可選值:"none" 不緩存、"auto" 緩存、"metadata" 只緩存文件元信息
    	playsinline="true" // IOS微信瀏覽器支持小窗內(nèi)播放
    	webkit-playsinline="true" // 這個(gè)屬性是ios 10中設(shè)置可以讓視頻在小窗內(nèi)播放,也就是不是全屏播放*/ 
    	x5-video-player-type="h5" // 啟用H5播放器,是wechat安卓版特性
    	x5-video-player-fullscreen="true" // 全屏設(shè)置,設(shè)置為 true 是防止橫屏
    	x5-video-orientation="portraint" // 播放器屏幕的方向,landscape橫屏,portraint豎屏,默認(rèn)值為豎屏。、、
    	οnclick="play()" > 
    	 <!-- 標(biāo)簽是為了能夠兼容各種瀏覽器對(duì)不同媒體類型的支持,我們可以用多個(gè)<source></source>元素來(lái)提供多個(gè)不同的媒體類型。支持mp4格式視頻流的瀏覽器可以播放mp4文件,如果不支持,可以播放Ogg文件。 -->
    	 <!-- codecs=dirac, speex - 是用來(lái)指定播放使用的解碼器(codecs); 這樣就可以更精確的讓瀏覽器如何播放提供的視頻。 -->
    	<source src="/video/text.mp4" type="video/mp4">
    	<source src="/video/text.ogg" type="video/ogg; codecs=dirac, speex">
      <div class="fallback"> <p>You must have an HTML5 capable browser.</p> </div> 
    </video>
  </body>
</html>

總結(jié)

到此這篇關(guān)于前端vue播放m3u8、flv、mp4視頻的文章就介紹到這了,更多相關(guān)vue播放m3u8、flv、mp4視頻內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue 的 Render 函數(shù)

    vue 的 Render 函數(shù)

    Vue 推薦在絕大多數(shù)情況下使用模板來(lái)創(chuàng)建你的 HTML。然而在一些場(chǎng)景中,你真的需要 JavaScript 的完全編程的能力。這時(shí)你可以用渲染函數(shù),它比模板更接近編譯器。下面就和小編一起來(lái)學(xué)習(xí)下面文章內(nèi)容吧
    2021-09-09
  • 深入探究Vue中$nextTick的實(shí)現(xiàn)原理

    深入探究Vue中$nextTick的實(shí)現(xiàn)原理

    這篇文章主要為大家詳細(xì)介紹Vue中$nextTick的實(shí)現(xiàn)原理,文中的示例代碼講解詳細(xì),對(duì)我們深入了解Vue有一定的幫助,需要的小伙伴可以參考一下
    2023-06-06
  • vue按需引入element Transfer 穿梭框

    vue按需引入element Transfer 穿梭框

    這篇文章主要介紹了vue按需引入element Transfer 穿梭框的相關(guān)資料,需要的朋友可以參考下
    2017-09-09
  • vue與bootstrap實(shí)現(xiàn)時(shí)間選擇器的示例代碼

    vue與bootstrap實(shí)現(xiàn)時(shí)間選擇器的示例代碼

    本篇文章主要介紹了vue與bootstrap實(shí)現(xiàn)時(shí)間選擇器的示例代碼,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-08-08
  • vue router 跳轉(zhuǎn)后回到頂部的實(shí)例

    vue router 跳轉(zhuǎn)后回到頂部的實(shí)例

    今天小編就為大家分享一篇vue router 跳轉(zhuǎn)后回到頂部的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • 詳解Vue基于vue-quill-editor富文本編輯器使用心得

    詳解Vue基于vue-quill-editor富文本編輯器使用心得

    這篇文章主要介紹了Vue基于vue-quill-editor富文本編輯器使用心得,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • vue2.x,vue3.x使用provide/inject注入的區(qū)別說(shuō)明

    vue2.x,vue3.x使用provide/inject注入的區(qū)別說(shuō)明

    這篇文章主要介紹了vue2.x,vue3.x使用provide/inject注入的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Vue?elementui如何實(shí)現(xiàn)表格selection的默認(rèn)勾選

    Vue?elementui如何實(shí)現(xiàn)表格selection的默認(rèn)勾選

    這篇文章主要介紹了Vue?elementui如何實(shí)現(xiàn)表格selection的默認(rèn)勾選問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • vue基于兩個(gè)計(jì)算屬性實(shí)現(xiàn)選中和全選功能示例

    vue基于兩個(gè)計(jì)算屬性實(shí)現(xiàn)選中和全選功能示例

    這篇文章主要介紹了vue基于兩個(gè)計(jì)算屬性實(shí)現(xiàn)選中和全選功能,結(jié)合實(shí)例形式分析了vue計(jì)算屬性get及set操作頁(yè)面元素實(shí)現(xiàn)選中與全選功能相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • iview table render集成switch開關(guān)的實(shí)例

    iview table render集成switch開關(guān)的實(shí)例

    下面小編就為大家分享一篇iview table render集成switch開關(guān)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03

最新評(píng)論

武功县| 基隆市| 夏津县| 尉氏县| 河间市| 泗水县| 左贡县| 长子县| 晋宁县| 侯马市| 伊春市| 古田县| 西畴县| 碌曲县| 汤原县| 阿拉善盟| 常德市| 泾川县| 乐山市| 南溪县| 湖北省| 晋宁县| 伊川县| 宁晋县| 贡嘎县| 阜南县| 手机| 凭祥市| 周宁县| 田东县| 黔东| 治县。| 花莲县| 兴业县| 哈密市| 和龙市| 潼南县| 万山特区| 东平县| 封开县| 任丘市|