Vue2使用easyplayer
说一下easyplayer在vue2中的使用,vue3中没测试,估计应该差不多,大家可自行验证。
安装:
pnpm i @easydarwin/easyplayer
组件封装
习惯性将其封装为单独的组件
<template><div class="EasyPlayer"><easy-playerstyle="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"fluentstretch></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,'播放异常或播放结束或直播断流------->>>>>>>>>')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%;
}/* 阻止单击双击视频全屏或者跳转官网 *//* /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>
报错处理
会发现控制台有下面报错
看到报错不要慌,大家跟着我处理
首先我们安装个插件(注意:不要大于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 相关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
说一下easyplayer在vue2中的使用,vue3中没测试,估计应该差不多,大家可自行验证。 安装: pnpm i easydarwin/easyplayer 组件封装 习惯性将其封装为单独的组件 <template><div class"EasyPlayer"><e…...

Map映射学习
一、Map的遍历 创建Map集合 Map<String, Integer> map new HashMap<>();添加元素 map.put("java", 99);map.put("c", 88);map.put("c", 93);map.put("python", 96);map.put("Go", 88); 遍历方法: …...
【每日一题Day292】LC1572矩阵对角线元素的和 模拟
矩阵对角线元素的和【LC1572】](https://leetcode.cn/problems/matrix-diagonal-sum/) 思路 简单模拟,主对角线的元素横纵坐标相等,副对角线的元素横纵坐标相加为n-1,注意避免重复计算 实现 class Solution {public int diagonalSum(int[][]…...

Mongodb:业务应用(2)
需求: 1、获取保存到mongodb库中的搜索记录列表 2、实现删除搜索记录接口 保存搜索记录数据参考上篇Mongodb:业务应用(1)_Success___的博客-CSDN博客 获取记录列表 1、创建controller package com.heima.search.controller.v1;…...
DSO学习笔记
最近在学习DSO系列的代码,整理记录一下 DOS代码流程 TODO DSO跑kitti数据集 参考高翔大佬的LDSO中LDSO/examples/run_dso_kitti.cc,由于kitti数据集木有光度参数标定文件,其实最重要的就是相机内参文件camera.txt按照格式来就行了ÿ…...
【Windows 常用工具系列 5 -- 如何在网页(CSDN)中实现右上角及右下角数字显示】
文章目录 网页右上角/右下角标号写法 网页右上角/右下角标号写法 在网页撰写文章时经常遇到需要平方的写法,比如书写 X 的 2次方, 可以通过下面方法完成: <sup>x</sup> : x 上移到右上角;<sub>x</sub> : x 下移到右下角。 实…...
sql注入--报错注入
常用的简单测试语句和注释符号说明 sql语句的注释符号,是sq注入语句的关键点:常用 # 和 -- 1、# 和 --(有个空格)表示注释,可以使它们后面的语句不被执行。在url中,如果是get请求也就是我们在浏览器地址栏…...
Nginx常用功能
Nginx 介绍 Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。性能是 Nginx 最重要的…...
【Express.js】express-validator
express-validator express.js 集成 express-validator进行数据校验 在最初的时候,对于请求的数据校验,我们是自定义一个中间件,然后在里面通过最原生的方式检验。在本节,我们将尝试用一种更优雅的方式进行数据校验。 准备工作…...

沁恒ch32V208处理器开发(三)GPIO控制
目录 GPIO功能概述 CH32V2x 微控制器的GPIO 口可以配置成多种输入或输出模式,内置可关闭的上拉或下拉电阻,可以配置成推挽或开漏功能。GPIO 口还可以复用成其他功能。端口的每个引脚都可以配置成以下的多种模式之一: 1 浮空输入 2 上拉输入…...

Jenkins 中 shell 脚本执行失败却不自行退出
Jenkins 中 执行 shell 脚本时,有时候 shell 执行失败了,或者判断结果是错误的,但是 Jenkins 执行完成后确提示成功 success 。 此时,可以通过条件判断来解决这个问题,让 Jenkins 强制退出并提示执行失败 failed 。 …...

2021年12月 C/C++(一级)真题解析#中国电子学会#全国青少年软件编程等级考试
第1题:输出整数部分 输入一个双精度浮点数f, 输出其整数部分。 时间限制:1000 内存限制:65536 输入 一个双精度浮点数f(0 < f < 100000000)。 输出 一个整数,表示浮点数的整数部分。 样例输入 3.8889 样例输出 3 下面是一个使用C语言编写的输出双精度浮点数整数部分…...
有哪些可以用于性能测试方法?【举例说明】
1.负载测试 在这里,负载测试指的是最常见的验证一般性能需求而进行的性能测试,在上面我们提到了用户最常见的性能需求就是“既要马儿跑,又要马儿少吃草”。因此负载测试主要是考察软件系统在既定负载下的性能表 现。我们对负载测试可以有如下…...

Linux进程管理命令
一、进程 程序由一条条指令构成,在运行一个程序的时候就是把这些指令从第一条执行到最后一条,而进程是一个正在运行的程序。 比如说,一个main.c文件是不可以直接运行的,对main.c进行编译链接之后生成一个main.exe(在W…...

pytest 常用命令参数
-x 用例一旦失败或错误时就立即停止执行 共两条用例,运行第一条报错失败或报错,第二条就不会执行 pytest -vs -x test_pytest_study.py::TestCommon1 共2条用例,当执行到第一条失败时候,第二条不执行 --maxfailnum …...

从安装 Seata 开始的分布式事务之旅 springboot集成seata
从安装 Seata 开始的分布式事务之旅 介绍什么是 Seata? 安装 Seata Server下载 Seata Server 发行版配置Seata解压文件配置Seata的yml文件把配置文件config.txt加载到nacos上修改config.txt文件加载到nacos上 启动Seata服务正常启动查看启动日志打开控制台页面 启动…...
Laravel 使用mix引入本地样式文件 报错 Unable to locate Mix处理
刚下了一个bootstrap样式文件,mix引入了一下,直接报错: Unable to locate Mix file: /css/bootstrap.min.css. (View: D:\phpEnv\www\abc\resources\views\admin\noteAdd.blade.php)原来是需要 npm run dev 启动一下 ✔ Compiled Successfu…...

QT学习笔记-QT安装oracle oci驱动
QT学习笔记-QT安装oracle oci驱动 0、背景1、环境以及条件说明2、编译驱动2.1 下载oracle instant client2.2 编译qt oci驱动2.2.1 修改oci.pro2.2.2 MinGW64构建套件编译2.2.3 MSVC2019_64构建套件编译 3、访问数据库运行成功 0、背景 在使用QT开发应用的过程中,往…...

【React学习】—类的基本知识(五)
【React学习】—类的基本知识(五) <script>// 创建一个Person类class Person{//构造器方法constructor(name,age){this.namename;this.ageage;}//一般方法speak(){//speak方法一般放在哪里?类的原型上,供实例使用//通过Pers…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...

《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...