1. 程式人生 > >詳解vue2.0+vue-video-player實現hls播放全過程_vue.js

詳解vue2.0+vue-video-player實現hls播放全過程_vue.js

這篇文章主要介紹了詳解vue2.0+vue-video-player實現hls播放全過程,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧 起因

最近公司想做一套視訊點播服務,因為考慮到成本問題,領導希望一切都用開源系統來完成。基於這個出發點,那就肯定排除了各大雲視訊平臺(騰訊雲 音視訊點播VOD、網易雲視訊、七牛雲、阿里雲 視訊服務等)。其實這裡我還是建議購買雲視訊平臺,因為自己造輪子肯定沒有別人造的好(專門研發團隊除外、以此業務為生的公司除外),再說,雲視訊平臺服務商提供的都是一整套解決方案:收集、儲存、轉碼、播放器等,並且在cdn和彈性擴容上都能得到最大保障。

準備

視訊點播最少需要兩樣東西:流媒體服務、視訊播放器。 因為這是一篇講述前端播放器的帖子,關於流媒體服務的搭建我就pass了,以後有時間再補充新帖。

因為公司前端架構用的是vue全家桶,所以還是希望能夠找一款基於vue封裝的視訊播放器。

首先到vue社群找到了vue-dplayer,於是就install到本地測試了一下,這時候出現個問題:此播放器在播放基於hls協議的m3u8檔案時(視訊檔案在流媒體服務已經成功部署),在ios上能夠正常播放(自家協議支援良好),但是在pc的chrome上是不支援的。然後我去github上找了找資料,資料顯示Dplay(vue-dplayer就是依據Dplay封裝的)是支援hls的,只是需要引入hls.js,然後用hls對video物件進行處理。因為hls.js與Dplayer示例程式碼是針對video物件處理的,引入到專案中還需要修改vue-dplayer的一個屬性,時間緊迫,先放棄之(之後我會有一篇專門介紹Dplayer播放hls的帖子,

已補充),轉身投入vue-video-player的懷抱。

為什麼會用vue-video-player? 

1. 我搭建的流媒體服務的管理頁面內的播放器就是用的videoJs(vue-video-player是依據videoJs封裝的),使用之後感覺良好。 
2. 百度輸入“vue video”,vue-video-player就在頂部。(哈哈,就是這麼隨意) 
3. 當然還是看了demo頁,支援的協議齊全。 
4. 雖然vue-video-player的github上還有些issues沒有關閉,但是自己覺得守著videoJs強大的庫與萬千使用者,總能解決問題。(迷之自信啊)

開整

安裝依賴

?
1 npm install vue-video-player --save

引入樣式

?
1 2 3 // 第一個是videoJs的樣式,後一個是vue-video-player的樣式,因為考慮到我其他業務元件可能也會用到視訊播放,所以就放在了main.js內 require( 'video.js/dist/video-js.css' ) require( 'vue-video-player/src/custom-theme.css' )

把VueVideoPlayer匯入並掛在到vue上

?
1 2 3 //在main.js內 import VideoPlayer from 'vue-video-player' Vue.use(VideoPlayer);

編寫業務元件 myPlayer.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 60 61 62 63 64 65 66 67 68 69 70 71 < template >   < div class = "container" >   < div class = "player" >    < video-player class = "video-player vjs-custom-skin"        ref = "videoPlayer"        :playsinline

相關推薦

vue2.0+vue-video-player實現hls播放全過程_vue.js

這篇文章主要介紹了詳解vue2.0+vue-video-player實現hls播放全過程,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧 起因 最近公司想做一套視訊點播服務,因為考慮到成本問題,領導希望一切都用開源系統來完成。基

vue2.0 使用動態元件實現 Tab 標籤頁切換效果(vue-cli)

在 vue 中,實現 Tab 切換主要有三種方式:使用動態元件,使用 vue-router 路由,使用第三方外掛。因為這次完成的功能只是簡單切換元件,再則覺得使用路由切換需要改變地址略微麻煩,所以使用的是動態元件實現,如果是在大型應用上,可能使用 vue-router 會方便

vue播放video外掛vue-video-player實現hls, rtmp播放全過程

1.安裝外掛 1 npm install vue-video-player -S 2.配置外掛 在main.js裡新增 1 import VideoPlayer from 'vue-video-player' 2 require('video.js/dist/video-js.

vue播放video插件vue-video-player實現hls, rtmp播放全過程

html5 cnp 常用 tro duration 顯示 supported -s 直播 1.安裝插件 1 npm install vue-video-player -S 2.配置插件 在main.js裏添加 1 import VideoPlayer from ‘vu

vue專案利用vue-video-player實現視訊相容IOS和安卓放大播放

首先,圖片和視訊混合一起,預設圖片製作poster點選彈窗手機播放器 <template> <div class="look-v"> <section class="view-wrap" v-if="accObj"> <div c

vue2.0+vue-dplayer實現hls播放

thum clas ted validator con method context log ret vue2.0+vue-dplayer實現hls播放 開始 安裝依賴 npm install vue-dplayer -S 1,編寫組件HelloWorld.vue &

nuxt中使用vue-video-player,以及hls實現(支援m3u8)

1.安裝依賴 npm install vue-video-player videojs-contrib-hls --save 2.建立videoplayer外掛 import Vue from 'vue' const VueVideoPlayer = requ

[IOS] 圖片局部拉伸 + 實現圖片局部收縮

情況 cat 寬度 cal inb 進行 圖片顯示 平鋪 length (圖為微信首頁右上角『+』效果) 當初還在開發WP7的時候,從IOS同事那邊了解到類似微信以上功能的實現。 Item條數不同,總高度也不同,這就需要將背景圖片進行局部拉伸到響應的高度,並且保持上方的三角

C語言itoa()函數和atoi()函數(整數轉字符C實現)

獲取 c++語言 end atof 定位 ray iostream 寫入 blog C語言提供了幾個標準庫函數,可以將任意類型(整型、長整型、浮點型等)的數字轉換為字符串。 1.int/float to string/array: C語言提供了幾個標準庫函數,可以將任意類型

vue2.0 購物車小球的實現

.sh clas his ppi true push end ont tick <div class="ballContain"> <div v-for="ball in balls"> <transition name="drop"

vue2.0 vue.extend()的拓展

xtend func www ext new 拓展 itl jquer ref <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"&g

vue2.0 vue.set()

utf-8 logs har cti java function script 引用 html <!DOCTYPE html> <html lang="en"> <head> <meta charset="

Vue.js系列之項目搭建(vue2.0 + vue-cli + webpack )

項目搭建 cnblogs 技術 tro gis vue.js 應用 vue-cli web 1、安裝node node.js環境(npm包管理器) cnpm npm的淘寶鏡像 從node.js官網下載並安裝node,安裝過程很簡單,一路“下一步”就可以了(傻瓜式安裝)。

Angular6.0使用路由步驟(共7步)

今天寫的有點兒多了,前幾天一直寫js基礎.今天想聊聊angular6.0的路由實現.因為有公司已經開始轉向angular6.0了.寫完趕緊吃飯去了. 宣告一下,以下路由的實現是基於angular6.0 腳手架 實現的. 腳手架的安裝方法不在此討論範圍內. 第一步:建立一個路由檔案. 通過

C# 網路程式設計系列:實現類似QQ的即時通訊程式

https://www.jb51.net/article/101289.htm   引言: 前面專題中介紹了UDP、TCP和P2P程式設計,並且通過一些小的示例來讓大家更好的理解它們的工作原理以及怎樣.Net類庫去實現它們的。為了讓大家更好的理解我們平常中常見的軟體QQ的工作原理,所以在本專題

基於接口回調JUC中Callable和FutureTask實現原理

cnblogs blog 異步編程 但是 迷糊 對象 extend href 增加 Callable接口和FutureTask實現類,是JUC(Java Util Concurrent)包中很重要的兩個技術實現,它們使獲取多線程運行結果成為可能。它們底層的實現,就是基於接口

代理模式的(一)---SpringAOP的兩種實現代理模式的詳細解讀

   現在在生活中,許多軟體系統都提供跨網路和系統的應用,但在跨網路和系統應用時,作為系統開發者並不希望客戶直接訪問系統中的物件。其中原因很多考慮到系統安全和效能因素,因素還有很多,也就不再進行一一的列舉了,所以,想到了在客戶端和系統端新增一層中間層----代理層,也是即將要介紹的代理模式。   首先,明確

vue2.0 結合better-scroll 實現下拉加載

before settime finish log 計算 結合 底部 page png 一、建議先了解下better-scroll 的介紹 鏈接:https://ustbhuangyi.github.io/better-scroll/doc/zh-hans/#better-

vue2.0 結合better-scroll 實現下拉載入

一、建議先了解下better-scroll 的介紹 連結:https://ustbhuangyi.github.io/better-scroll/doc/zh-hans/#better-scroll%20%E6%98%AF%E4%BB%80%E4%B9%88 二、npm 安裝 npm install b

vue2.0 vue-router總結

1. 在專案中安裝: npm install vue-router --save   2. 在專案中引入: // The Vue build version to load with the `import` command // (runtime-only o