vue使用vue-video-player插件播放視頻的步驟講解
前言
在我的一個項目中,需要進行播放視頻,于是進行研究,那么本次也是將我怎么用vue-video-player插件進行播放視頻的步驟進行講解
官網文檔
在進行正式講解的時候,我覺得還是應該把它官網的文檔進行發(fā)出來,因為我這邊只是講我有使用到的方法和屬性,但是實際上,你們正式需要用到的可能不完全和我相同;這個時候就需要進行官方文檔的查找了。
文檔鏈接:vue-video-player
步驟
下載依賴和配置
首先我們需要在我們的項目進行安裝下載該插件的依賴
npm install vue-video-player
在你需要進行播放視頻的頁面引入
import {<!--{C}%3C!%2D%2D%20%2D%2D%3E--> videoPlayer } from "vue-video-player";
這里我們用videoPlayer進行標注名稱
編寫頁面
引入完成后,我們就需要編寫頁面能夠播放視頻了
<template> <div> // 視頻 <video-player class="video-player" ref="videoPlayer"></video-player> </div> </template>
以上是最最基礎的播放視頻的結構,而如果你想播放視頻的時候進行某些操作,或者設置視頻的參數、按鈕控制等等就需要定義屬性和方法了。
如
<template> <div> // 視頻 <video-player class="video-player" ref="videoPlayer" :options="playerOptions" @pause="onPlayerPause($event)" @ended="onPlayerEnded($event)" @timeupdate="onPlayerTimeupdate($event)" > </video-player> </div> </template>
其中
options
代表的是對視頻控件的設置pause
代表的是暫?;卣{,當視頻暫停的時候進行操作ended
代表的是視頻播放結束的回調,當視頻播放完成的時候進行操作timeupdate
代表的是時候監(jiān)聽每一秒進行操作
以上只是其中一部分,下面我會列出一些比較常用的方法
本人項目播放視頻代碼
單純播放視頻是很簡單的,關鍵是你需要實現不同的需求,進行不同的回調調用。
那么在播放視頻的部分,首先你需要接收到后端傳過來的路徑,以我的路徑:
D:/EXAM_MATERIAL/NEW-STAFF/VIDEO/B-0001/1/B-0001.mp4
為例
ps:這里我會只實現播放,具體的其他回調我不會寫進來
界面:
<template> <div> <!--視頻組件--> <video-player class="video-player" ref="videoPlayer" :options="playerOptions" > </video-player> </div> </template>
js邏輯
<script> import { videoPlayer } from "vue-video-player"; export default { name: "newStaffMediaPlay", // 添加組件 components: { videoPlayer, }, // 定義變量 data() { return { mediaUrl: null, // 播放視頻的路徑 // 視頻控制設置 playerOptions: { playbackRates: [1.0], // 可選的播放速度 autoplay: true, // 如果為true,瀏覽器準備好時開始回放。 muted: false, // 默認情況下將會消除任何音頻。 loop: false, // 是否視頻一結束就重新開始。 preload: "auto", // 建議瀏覽器在<video>加載元素后是否應該開始下載視頻數據。auto瀏覽器選擇最佳行為,立即開始加載視頻(如果瀏覽器支持) language: "zh-CN", aspectRatio: "16:9", // 將播放器置于流暢模式,并在計算播放器的動態(tài)大小時使用該值。值應該代表一個比例 - 用冒號分隔的兩個數字(例如"16:9"或"4:3") fluid: true, // 當true時,Video.js player將擁有流體大小。換句話說,它將按比例縮放以適應其容器。 sources: [ { type: "video/mp4", // 類型 src: "", // url地址 }, ], poster: "", // 封面地址 notSupportedMessage: "此視頻暫無法播放,請稍后再試", // 允許覆蓋Video.js無法播放媒體源時顯示的默認信息。 controlBar: { timeDivider: true, // 當前時間和持續(xù)時間的分隔符 durationDisplay: true, // 顯示持續(xù)時間 remainingTimeDisplay: true, // 是否顯示剩余時間功能 fullscreenToggle: true, // 是否顯示全屏按鈕 }, }, } }, // 方法 methods: { // 獲取視頻路徑方法 getMedia() { // 假定此臨時變量為后端獲取的路徑 let mediaPath = "D:/EXAM_MATERIAL/NEW-STAFF/VIDEO/B-0001/1/B-0001.mp4"; // 處理路徑,防止出現瀏覽器禁止訪問問題 mediaPath = mediaPath.replace("D:/EXAM_MATERIAL", "/EXAM_MATERIAL"); let name = mediaPath.substring(mediaPath.lastIndexOf("/") + 1); this.mediaUrl = mediaPath.substring(0, mediaPath.lastIndexOf("/") + 1) + encodeURI(name); // 在視頻控件設置視頻路徑 this.playerOptions.sources[0].src = this.mediaUrl; } }, // created created() { // 進入頁面加載獲取后端傳過來的視頻路徑進行播放 this.getMedia(); }, } </script>
實際效果
以下截圖為我項目播放視頻截圖
常用回調
<template> <div class='demo'> <video-player class="video-player vjs-custom-skin" ref="videoPlayer" :playsinline="true" :options="playerOptions" @play="onPlayerPlay($event)" @pause="onPlayerPause($event)" @ended="onPlayerEnded($event)" @waiting="onPlayerWaiting($event)" @playing="onPlayerPlaying($event)" @loadeddata="onPlayerLoadeddata($event)" @timeupdate="onPlayerTimeupdate($event)" @canplay="onPlayerCanplay($event)" @canplaythrough="onPlayerCanplaythrough($event)" @statechanged="playerStateChanged($event)" @ready="playerReadied" > </video-player> </div> </template>
<script> export default { methods: { // 播放回調 onPlayerPlay(player) { console.log('player play!', player) }, // 暫?;卣{ onPlayerPause(player) { console.log('player pause!', player) }, // 視頻播完回調 onPlayerEnded($event) { console.log(player) }, // DOM元素上的readyState更改導致播放停止 onPlayerWaiting($event) { console.log(player) }, // 已開始播放回調 onPlayerPlaying($event) { console.log(player) }, // 當播放器在當前播放位置下載數據時觸發(fā) onPlayerLoadeddata($event) { console.log(player) }, // 當前播放位置發(fā)生變化時觸發(fā)。 onPlayerTimeupdate($event) { console.log(player) }, //媒體的readyState為HAVE_FUTURE_DATA或更高 onPlayerCanplay(player) { // console.log('player Canplay!', player) }, //媒體的readyState為HAVE_ENOUGH_DATA或更高。這意味著可以在不緩沖的情況下播放整個媒體文件。 onPlayerCanplaythrough(player) { // console.log('player Canplaythrough!', player) }, //播放狀態(tài)改變回調 playerStateChanged(playerCurrentState) { console.log('player current update state', playerCurrentState) }, //將偵聽器綁定到組件的就緒狀態(tài)。與事件監(jiān)聽器的不同之處在于,如果ready事件已經發(fā)生,它將立即觸發(fā)該函數。。 playerReadied(player) { console.log('example player 1 readied', player); } }, } </script>
結語
以上,就是我實現使用vue-video-player插件進行播放視頻的過程
到此這篇關于vue使用vue-video-player插件播放視頻的文章就介紹到這了,更多相關vue-video-player插件播放視頻內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用Vue的slot插槽分發(fā)父組件內容實現高度復用、更加靈活的組件(推薦)
這篇文章主要介紹了使用Vue的slot插槽分發(fā)父組件內容實現高度復用、更加靈活的組件 ,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2018-05-05Vuex持久化插件(vuex-persistedstate)解決刷新數據消失的問題
這篇文章主要介紹了Vuex持久化插件(vuex-persistedstate)-解決刷新數據消失的問題,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04Vue實現導出Excel表格文件提示“文件已損壞無法打開”的解決方法
xlsx用于讀取解析和寫入Excel文件的JavaScript庫,它提供了一系列的API處理Excel文件,使用該庫,可以將數據轉換Excel文件并下載到本地,適用于在前端直接生成Excel文件,這篇文章主要介紹了Vue實現導出Excel表格,提示文件已損壞,無法打開的解決方法,需要的朋友可以參考下2024-01-01