国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - vue.js - 如何在vue中使用video.js播放m3u8格式的視頻

如何在vue中使用video.js播放m3u8格式的視頻

2022-01-12 17:02下一秒 vue.js

這篇文章主要介紹了如何在vue中使用video.js 播放m3u8格式的視頻,幫助大家更好的理解和學習使用vue,感興趣的朋友可以了解下

@[toc] 注意:

?
1
2
3
4
"vue": "^2.6.11",
"video.js": "^7.10.2",
"videojs-contrib-hls": "^5.15.0",
"mux.js": "^5.7.0"

一、安裝

?
1
2
3
yarn add video.js
yarn add videojs-contrib-hls // 這是播放hls流需要的插件
yarn add mux.js // 在vue項目中,若不安裝它可能報錯

二、引入videojs

1.在src文件夾下新建 plugins文件夾,并新建video.js文件;

video.js文件的內容如下:

?
1
2
3
4
import "video.js/dist/video-js.css"; // 引入video.js的css
import hls from "videojs-contrib-hls"; // 播放hls流需要的插件
import Vue from "vue";
Vue.use(hls);

2.在main.js中引入剛剛的video.js文件

?
1
import "./plugins/video.js"; // 引入剛剛定義的video.js文件

三、在組件中測試并使用

1. 實現基本的自動播放

Test.vue文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<template>
 <div class="test-videojs">
 <video id="videoPlayer" class="video-js" muted></video>
 </div>
</template>
<script>
import Videojs from "video.js"; // 引入Videojs
export default {
 data() {
 return {
 // https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8 是一段視頻,可將cctv1 (是live現場直播,不能快退)的替換為它,看到快進快退的效果
  nowPlayVideoUrl: "http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8"
 };
 },
 mounted() {
 this.initVideo(this.nowPlayVideoUrl);
 },
 methods: {
 initVideo(nowPlayVideoUrl) {
  // 這些options屬性也可直接設置在video標簽上,見 muted
  let options = {
  autoplay: true, // 設置自動播放
  controls: true, // 顯示播放的控件
  sources: [
   // 注意,如果是以option方式設置的src,是不能實現 換臺的 (即使監聽了nowPlayVideoUrl也沒實現)
   {
   src: nowPlayVideoUrl,
   type: "application/x-mpegURL" // 告訴videojs,這是一個hls流
   }
  ]
  };
  // videojs的第一個參數表示的是,文檔中video的id
  const myPlyer = Videojs("videoPlayer", options, function onPlayerReady() {
  console.log("onPlayerReady 中的this指的是:", this); // 這里的this是指Player,是由Videojs創建出來的實例
  console.log(myPlyer === this); // 這里返回的是true
  });
 }
 }
};
</script>
<style lang="scss">
#videoPlayer {
 width: 500px;
 height: 300px;
 margin: 50px auto;
}
</style>

視頻播放效果如圖:

如何在vue中使用video.js播放m3u8格式的視頻

打印結果如圖:

如何在vue中使用video.js播放m3u8格式的視頻

2. 實現換臺

Test.vue文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<template>
 <div class="test-videojs">
 <video id="videoPlayer" class="video-js"></video>
 <el-button type="danger" @click="changeSource">切換到CCTV3</el-button>
 </div>
</template>
<script>
import Videojs from "video.js"; // 引入Videojs
export default {
 data() {
 return {
  nowPlayVideoUrl: "http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8",
  options: {
  autoplay: true, // 設置自動播放
  muted: true, // 設置了它為true,才可實現自動播放,同時視頻也被靜音 (Chrome66及以上版本,禁止音視頻的自動播放)
  preload: "auto", // 預加載
  controls: true // 顯示播放的控件
  },
  player:null
 };
 },
 mounted() {
 this.getVideo(this.nowPlayVideoUrl);
 },
 methods: {
 getVideo(nowPlayVideoUrl) {
  this.player = Videojs("videoPlayer", this.options);
  //關鍵代碼, 動態設置src,才可實現換臺操作
  this.player.src([
  {
   src: nowPlayVideoUrl,
   type: "application/x-mpegURL" // 告訴videojs,這是一個hls流
  }
  ]);
 },
 changeSource() {
  this.nowPlayVideoUrl = "http://ivi.bupt.edu.cn/hls/cctv3hd.m3u8";
  console.log(this.nowPlayVideoUrl, "改變了");
 }
 },
 watch: {
 nowPlayVideoUrl(newVal, old) {
  this.getVideo(newVal);
 }
 },
 beforeDestroy() {
 if (this.player) {
  this.player.dispose(); // Removing Players,該方法會重置videojs的內部狀態并移除dom
 }
 }
};
</script>
<style lang="scss">
#videoPlayer {
 width: 500px;
 height: 300px;
 margin: 50px auto;
}
</style>

視頻切換效果如圖:

如何在vue中使用video.js播放m3u8格式的視頻

如何在vue中使用video.js播放m3u8格式的視頻

四、踩坑小記

1. 視頻不能自動播放 或報錯 DOMException: play() failed

需用muted屬性解決

報錯信息:DOMException: play() failedbecause the user didn't interact with the document first.(用戶還沒有交互,不能調用play)

解決辦法:設置muted屬性為true

?
1
<video id="videoPlayer" class="video-js" muted></video>

關于muted屬性:

  • muted 屬性,設置或返回音頻是否應該被靜音(關閉聲音);屬性的值是true和false;
  • muted="false" 表示視頻不用靜音(視頻播放便有聲音),但設置 muted="fasle" 的情況下,視頻無法實現自動播放。
  • video 標簽中 muted 的作用: 允許視頻自動播放;(Chrome66版本開始,禁止視頻和音頻的自動播放)

2. 換臺的時候,url已經成功更改,但視頻還是之前的

需得動態設置src才能實現

?
1
2
3
4
5
6
7
// 動態設置src
this.player.src([
  {
   src: nowPlayVideoUrl,
   type: "application/x-mpegURL" // 告訴videojs,這是一個hls流
  }
 ]);

3. 找不到mux.js模塊

報錯信息:* mux.js/lib/tools/parse-sidx in ./node_modules/video.js/dist/video.es.js To install it, you can run: npm install --save mux.js/lib/tools/parse-sidx

解決辦法:安裝mux.js

?
1
yarn add mux.js

五、 播放rtmp流

播放rtmp流的操作與播放hls流的操作幾乎相同,不同在于:

?
1
2
import "videojs-flash"; // 播放rtmp流需要的插件
type: 'rtmp/flv', // 這個type值必寫, 告訴videojs這是一個rtmp流視頻

以上就是如何在vue中使用video.js 播放m3u8格式的視頻的詳細內容,更多關于vue 使用videojs 播放m3u8格式的視頻的資料請關注服務器之家其它相關文章!

原文鏈接:https://juejin.cn/post/6923006396896116744

延伸 · 閱讀

精彩推薦
  • vue.js詳解vue 表單綁定與組件

    詳解vue 表單綁定與組件

    這篇文章主要介紹了vue 表單綁定與組件的相關資料,幫助大家更好的理解和學習使用vue框架,感興趣的朋友可以了解下...

    Latteitcjz6432022-02-12
  • vue.jsVue項目中實現帶參跳轉功能

    Vue項目中實現帶參跳轉功能

    最近做了一個手機端系統,其中遇到了父頁面需要攜帶參數跳轉至子頁面的問題,現已解決,下面分享一下實現過程,感興趣的朋友一起看看吧...

    YiluRen丶4302022-03-03
  • vue.jsVue2.x 項目性能優化之代碼優化的實現

    Vue2.x 項目性能優化之代碼優化的實現

    這篇文章主要介紹了Vue2.x 項目性能優化之代碼優化的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋...

    優小U9632022-02-21
  • vue.jsVue中引入svg圖標的兩種方式

    Vue中引入svg圖標的兩種方式

    這篇文章主要給大家介紹了關于Vue中引入svg圖標的兩種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的...

    十里不故夢10222021-12-31
  • vue.js用vite搭建vue3應用的實現方法

    用vite搭建vue3應用的實現方法

    這篇文章主要介紹了用vite搭建vue3應用的實現方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下...

    Asiter7912022-01-22
  • vue.js梳理一下vue中的生命周期

    梳理一下vue中的生命周期

    看過很多人講vue的生命周期,但總是被繞的云里霧里,尤其是自學的同學,可能js的基礎也不是太牢固,聽起來更是吃力,那我就已個人之淺見,以大白話...

    CRMEB技術團隊7992021-12-22
  • vue.jsVue2.x-使用防抖以及節流的示例

    Vue2.x-使用防抖以及節流的示例

    這篇文章主要介紹了Vue2.x-使用防抖以及節流的示例,幫助大家更好的理解和學習使用vue框架,感興趣的朋友可以了解下...

    Kyara6372022-01-25
  • vue.jsVue多選列表組件深入詳解

    Vue多選列表組件深入詳解

    這篇文章主要介紹了Vue多選列表組件深入詳解,這個是vue的基本組件,有需要的同學可以研究下...

    yukiwu6752022-01-25
主站蜘蛛池模板: hsck成人网| 伊人天堂在线 | 欧美日韩一区二区三区不卡视频 | 精品日韩 | 欧美中文字幕一区二区三区 | 国产黄色片一级 | 国产精品一区二区三区在线 | 欧美日韩中文 | 午夜免费福利视频 | 欧美自拍一区 | 国产精品免费久久久久久 | 日韩精品一二三 | 中文字幕高清在线观看 | 国产一区二区三区四区在线观看 | 欧美精品一区二区三区蜜桃视频 | 久久夜色精品国产 | 精品一区二区三区在线观看 | 久久99视频这里只有精品 | 国产精品免费一区二区三区 | 亚洲一区二区三区精品动漫 | 99亚洲 | 两性视频久久 | 欧美日韩一级视频 | 午夜视频在线 | 一区二区三区视频在线观看 | 欧美电影免费观看网站 | 精品亚洲一区二区 | 欧美一区二区最爽乱淫视频免费看 | 极品一区 | 亚洲日本三级 | 红桃av一区二区 | 亚洲 精品 综合 精品 自拍 | 精品无码久久久久国产 | 国内久久精品 | 美女爽到呻吟久久久久 | 久久久久久久av | 久久精品一区二区三区不卡牛牛 | 久久精品国产99国产精品 | 国产精品久久久久久久久久 | 免费视频国产 | 在线免费黄色 |