vue+video.js視頻播放、視頻切換、視頻斷點(diǎn)分段上傳功能
“本次需求是做一個(gè)視頻列表,點(diǎn)擊視頻列表播放對(duì)應(yīng)視頻;同時(shí)要求實(shí)現(xiàn)斷點(diǎn)分段上傳大文件(視頻)的功能 。
videojs文檔:Getting Started with Video.js - Video.js: The Player Framework | Video.js
斷點(diǎn)續(xù)傳組件地址:GitHub - gaoyuyue/MyUploader: 單文件上傳,多文件上傳,大文件上傳,斷點(diǎn)續(xù)傳,文件秒傳,圖片上傳
整體界面大致如下:
1. 安裝依賴
npm i -S video.js
2.入口文件引入js和樣式文件
// main.js (入口文件中引入js和樣式文件) import videojs from 'video.js' import 'video.js/dist/video-js.css' // 如果需要可以注冊(cè)為vue全局方法 Vue.prototype.$video = videojs;
3.開始封裝video組件
<!-- 視頻播放組件 --> <template> <video ref="videoPlayer" class="video-js" > </video> </template> <script> export default { name: 'VideoPlayer', props: { // 視頻播放地址 url: { type: String, } }, data () { return { // 視頻實(shí)例 player: null, } }, methods: { // 改變視頻播放地址 changeVideoSrc (src) { this.player.src([{ src, type: 'video/mp4' }]) }, }, mountd () { // 初始化視頻 // this.$video 就是 videojs, 文件入口內(nèi)已經(jīng)全局注冊(cè)了 this.player = this.$video(this.$refs.videoPlayer, { language: 'zh-CN', // 中文 responsive: true, autoplay: false, preload: 'auto', playbackRates: [1, 1.5, 2], sources: [{ src: this.url, type: 'video/mp4' }] }, () => { this.player.log('ready', this) }) }, beforeDestory () { this.player && this.player.dispose(); }, } </script>
4.測(cè)試視頻組件是否正常
// 父組件中引入視頻組件 <VideoPlayer :url="url"> // 這里可以寫個(gè)固定的地址測(cè)試一下視頻組件能否播放 // 注意:不能是本地視頻。比如是服務(wù)器上的視頻才可以播放。
【失敗信息】-- 通常就是code為4. 大概意思就是因?yàn)橐曨l格式和網(wǎng)絡(luò)原因不能播放。這有幾個(gè)原因:
1.視頻格式不正確。 要求是type是MP4,而請(qǐng)求播放的視頻不是MP4格式。
2.網(wǎng)絡(luò)不同或者跨域。這種錯(cuò)誤很常見且隱秘。需要看看播放地址是否能正常訪問,或者該視頻地址是不是存在跨域(corss origin)。跨域就用代理,很好解決,不在追敘。
【漢化失敗】
明明設(shè)置了language為中文,但是結(jié)果還是英文。這里有個(gè)問題,videojs不會(huì)自動(dòng)引入語言包,需要我們自行引入中文語言包。找到語言包,單獨(dú)拿出來,放在src目錄下,在入口文件中引入即可。
方法:node_moudles下找打videojs.dist/lang/zh-cn.js,如下圖,
找到zh-cn.js,單獨(dú)復(fù)制出來,放進(jìn)src的js文件夾下。
當(dāng)然,這時(shí)候還要再這個(gè)js文件中引入video.js,
然后在入口文件引入這個(gè)語言包即可漢化成功。
5.視頻列表切換視頻播放
// 視頻列表代碼比較簡(jiǎn)單不再寫了 直接寫切換方法 // 比如在父組件中 <VideoPlayer ref="players" /> <!-- 視頻切換列表 --> <li v-for="video in videos" :key="video.id" @click="changeVideoSource(video)" >{{ 視頻名稱 }}</li> // 視頻切換方法 changeVideoSource (video) { this.$refs.players.changeVideoSrc(video.src); },
至此,完成視頻切換播放功能。
6.斷點(diǎn)續(xù)傳的插件
使用了下邊這個(gè)斷點(diǎn)續(xù)傳的插件
GitHub - gaoyuyue/MyUploader: 單文件上傳,多文件上傳,大文件上傳,斷點(diǎn)續(xù)傳,文件秒傳,圖片上傳
首先,我們需要自行安裝plupload。因?yàn)樯线吔M件基于此組件封裝的。
npm i -S plupload
然后,引入上邊github項(xiàng)目中的如下幾個(gè)文件:
這四個(gè)文件引入自己項(xiàng)目中去即可。
【上傳地址】
url就是上傳地址。
【上傳參數(shù)】
可以在這里定義上傳所需參數(shù),
up.setOption("multipart_params", { "size":file.size, "md5":file.md5, filename: 'hahaha', id: '123456', // ....... });
至此,視頻播放與視頻上傳基本完成。要多看文檔,多實(shí)踐。
到此這篇關(guān)于vue+videojs視頻播放、視頻切換、視頻斷點(diǎn)分段上傳的文章就介紹到這了,更多相關(guān)vue videojs視頻播放內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue中定義src在img標(biāo)簽使用時(shí)加載不出來的解決
這篇文章主要介紹了Vue中定義src在img標(biāo)簽使用時(shí)加載不出來的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07vue 判斷頁面是首次進(jìn)入還是再次刷新的實(shí)例
這篇文章主要介紹了vue 判斷頁面是首次進(jìn)入還是再次刷新的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11使用Bootstrap + Vue.js實(shí)現(xiàn)添加刪除數(shù)據(jù)示例
本篇文章主要介紹了使用Bootstrap + Vue.js實(shí)現(xiàn) 添加刪除數(shù)據(jù)示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-02-02vue3 vite pinia配置動(dòng)態(tài)路由、解決刷新頁面路由消失的問題
這篇文章主要介紹了vue3 vite pinia配置動(dòng)態(tài)路由、解決刷新頁面路由消失的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10vue-cli history模式實(shí)現(xiàn)tomcat部署報(bào)404的解決方式
這篇文章主要介紹了vue-cli history模式實(shí)現(xiàn)tomcat部署報(bào)404的解決方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09詳解如何在vue項(xiàng)目中使用layui框架及采坑
這篇文章主要介紹了vue使用layui框架,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05解決v-if 與 v-for 同時(shí)使用報(bào)錯(cuò)的問題
在進(jìn)行項(xiàng)目開發(fā)的時(shí)候因?yàn)樵谝粋€(gè)標(biāo)簽上同時(shí)使用了v-for和v-if兩個(gè)指令導(dǎo)致的報(bào)錯(cuò),遇到這個(gè)問題如何解決呢?下面小編給大家?guī)砹岁P(guān)于v-if 與 v-for 使用報(bào)錯(cuò)問題分析及解決方法,一起看看吧2022-03-03Vue.js組件tree實(shí)現(xiàn)無限級(jí)樹形菜單
這篇文章主要為大家詳細(xì)介紹了Vue.js組件tree實(shí)現(xiàn)無限級(jí)樹形菜單代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12詳解Vue-axios 設(shè)置請(qǐng)求頭問題
這篇文章主要介紹了Vue-axios 設(shè)置請(qǐng)求頭問題,文中給大家提到了axios設(shè)置請(qǐng)求頭內(nèi)容的方法,需要的朋友可以參考下2018-12-12