Vue2中easyplayer的使用教程詳解
說一下easyplayer在vue2中的使用,vue3中沒測試,估計應該差不多,大家可自行驗證。
安裝:
pnpm i @easydarwin/easyplayer
組件封裝
習慣性將其封裝為單獨的組件
<template>
<div class="EasyPlayer">
<easy-player
style="width: 100%;height: 100%;"
@error="restartPlayer"
@ended="restartPlayer"
@play="videoPlay"
ref="EasyPlayerRef"
:videoUrl="url"
:aspect="aspect"
:showEnterprise="false"
:show-custom-button="false"
:alt="alt"
:autoplay="autoplay"
:loop="loop"
:muted="muted"
fluent
stretch
>
</easy-player>
</div>
</template>
<script>
import EasyPlayer from '@easydarwin/easyplayer'
export default {
data() {
return {
timer: null
}
},
components: { EasyPlayer },
props: {
url: {
type: String,
default: ''
},
aspect: {
type: String,
default: '16:9'
},
alt: {
type: String,
default: '無信號'
},
autoplay: {
type: Boolean,
default: true
},
loop: {
type: Boolean,
default: true
},
muted: {
type: Boolean,
default: true
}
},
destroyed() {
if(this.timer) {
clearInterval(this.timer)
this.timer = null
}
},
methods: {
restartPlayer(e) {
console.log(e,'播放異常或播放結(jié)束或直播斷流------->>>>>>>>>')
this.$refs.EasyPlayerRef.initPlayer() //初始化播放器
this.$emit('pullFlow')
this.timer = setInterval(() => {
this.$refs.EasyPlayerRef.initPlayer() //初始化播放器
this.$emit('pullFlow')
}, 3000)
},
// 播放事件
videoPlay(a) {
// console.log(a,'視頻播放------>>')
if(this.timer) {
clearInterval(this.timer)
this.timer = null
}
},
},
}
</script>
<style scoped>
.EasyPlayer {
width: 100%;
height: 100%;
}
/* 阻止單擊雙擊視頻全屏或者跳轉(zhuǎn)官網(wǎng) */
/* /deep/ .vjs-tech {
pointer-events: none!important;
} */
/* /deep/ .video-js.vjs-fullscreen::backdrop,:not(:root):fullscreen::backdrop {
position: fixed!important;
top: 0!important;
left: 0!important;
width: 50%!important;
height: 50%!important;
right: 50%!important;
bottom: 50%!important;
background-color: transparent!important;
}
/deep/ .video-js.vjs-fullscreen .vjs-tech {
position: absolute;
top: 50%;
left: 50%;
width: 50%!important;
height: 50%!important;
transform: translateX(-50%)!important;
}
/deep/ .video-js {
background-color: transparent!important;
} */
</style>引入使用
<template>
<div class="container">
<div class="easy-player">
<EasyPlayer
:url="playerUrl"
@pullFlow="pullFlow"
/>
</div>
</div>
</template>
<script>
import EasyPlayer from './EasyPlayer/index.vue'
export default {
data() {
return {
playerUrl: 'http://playertest.longtailvideo.com/adaptive/bipbop/gear4/prog_index.m3u8'
}
},
components: { EasyPlayer },
methods:{
// 播放異常 重新拉流
pullFlow() {
// .....
}
},
}
</script>
<style scoped>
.container {
width: 100%;
height: 100%;
padding: 100px 0 0 100px;
box-sizing: border-box;
}
.easy-player {
width: 450px;
height: 300px;
border: 1px solid red;
}
</style>報錯處理
會發(fā)現(xiàn)控制臺有下面報錯

看到報錯不要慌,大家跟著我處理
首先我們安裝個插件(注意:不要大于6.0版本的,不然會有bug ,還會有亂七八槽的報錯):
pnpm add copy-webpack-plugin@5.1.2 --save-dev
然后在vue.config.js中:

const { defineConfig } = require("@vue/cli-service");
const CopyWebpackPlugin = require('copy-webpack-plugin')
module.exports = defineConfig({
// easy-player 相關(guān)
configureWebpack: {
plugins: [
new CopyWebpackPlugin([
{
from: 'node_modules/@easydarwin/easyplayer/dist/component/EasyPlayer.swf',
to: './libs/EasyPlayer/'
},
{
from: 'node_modules/@easydarwin/easyplayer/dist/component/crossdomain.xml',
to: './libs/EasyPlayer/'
},
{
from: 'node_modules/@easydarwin/easyplayer/dist/component/EasyPlayer-lib.min.js',
to: './libs/EasyPlayer/'
}
])
]
},
transpileDependencies: true,
lintOnSave: false,
productionSourceMap: false
});配置上之后還沒完,還需要在public/index.html 引入EasyPlayer-element.min.js,可以直接在node_modules里找到@easydarwin/easyplayer下的dist/element/EasyPlayer-element.min.js復制到pubilc目錄下,還有需要EasyPlayer.wasm同樣放到public目錄下如下所示:

然后在public/index.html下再引入即可
<script src="/lib/EasyPlayer-element.min.js"></script>
這樣就OK了!

以上就是Vue2中easyplayer的使用教程詳解的詳細內(nèi)容,更多關(guān)于Vue easyplayer的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Vue引入高德地圖并觸發(fā)實現(xiàn)多個標點的示例詳解
這篇文章主要介紹了Vue引入高德地圖并觸發(fā)實現(xiàn)多個標點,主要是在public下的index.html中引入地圖,引入組件設(shè)置寬高100%,本文通過示例代碼給大家介紹的非常詳細,需要的朋友可以參考下2022-05-05
Vue基于el-breadcrumb實現(xiàn)面包屑功能(操作代碼)
這篇文章主要介紹了Vue基于el-breadcrumb實現(xiàn)面包屑功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-09-09
關(guān)于Vue.js 2.0的Vuex 2.0 你需要更新的知識庫
關(guān)于Vue.js 2.0 的 Vuex 2.0你需要更新的知識庫,感興趣的小伙伴們可以參考一下2016-11-11
Vue的export?default和帶返回值的data()及@符號的用法說明
這篇文章主要介紹了Vue的export?default和帶返回值的data()及@符號的用法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
treeSelect樹組件設(shè)置父節(jié)點禁用的方法實例
這篇文章主要給大家介紹了關(guān)于treeSelect樹組件設(shè)置父節(jié)點禁用的相關(guān)資料,文中通過圖文以及示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2022-12-12

