easyplayer 前端播放器

easyplayer 前端播放器

文章目录

概要

需求是对接flv视频流,本来打算用b站的flv去做,做出来以后发现延迟高,加载慢,然后查找了一下,找到了这个。 

EasyPlayer.js集播放http-flv, hls, websocket 于一身的H5视频直播/视频点播播放器, 使用简单, 功能强大。

功能说明

  •  支持 MSE H264和H265硬解码;
  •  支持 WebCodec H264和H265硬解码;
  •  支持 WASM H264和H265硬解码/软解码;
  •  支持 m3u8/HLS (H265/H265)播放;
  •  支持 Mpeg4格式(H264)播放;
  •  支持 HTTP-FLV/WS-FLV (H265/H265)播放;
  •  支持 HTTP-FMP4/WS-FMP4 (H265/H265)播放;
  •  支持 WEBRTC(easy支持H264/H265、其他流媒体支持H264)播放;
  •  支持 裸流(H264/H265) 播放;
  •  支持 直播和点播播放;
  •  支持 点播多清晰度播放;
  •  支持 全屏或比例显示;
  •  支持 电子放大;
  •  支持 水印(动态水印、幽灵水印);
  •  支持 显示上一个视频最后一帧;
  •  支持 播放器快照截图;
  •  支持 视频录制(WebM格式(音频+视频)、Mp4格式(视频),Flv格式(音频+视频));
  •  支持 超时、断网重连、异常暂停播放等;
  •  支持 解析视频i帧文件转base64;

仓库地址

https://github.com/EasyDarwin/EasyPlayer.js

使用方法

我是在vue集成的,在npm上没有找到这个库, 根据官方demo,在index.html里直接引入

然后直接在想用的页面使用即可

代码

// 方法 const onUse = (type) => { if (type == "hasAudio") { config.value.hasAudio = !config.value.hasAudio; } else { config.value.MSE = false; config.value.WCS = false; if (type == "MSE") config.value.MSE = true; if (type == "WCS") config.value.WCS = true; } if (isPlay.value) { onDestroy().then(() => { playCreate(); onPlayer(); }); } }; const onPlayer = () => { if (isUnmounted) return; isPlay.value = true; setTimeout( (url) => { if (isUnmounted) return; playerInfo.value && playerInfo.value .play(url) .then(() => {}) .catch((e) => { console.error(e); }); }, 0, videoUrl.value ); }; const onDestroy = () => { return new Promise((resolve, reject) => { if (playerInfo.value) { playerInfo.value.destroy(); playerInfo.value = null; } setTimeout(() => { if (isUnmounted) return; // @ts-ignore resolve(); }, 100); }); }; const playCreate = () => { if (isUnmounted) return; var container = document.getElementById("player_box1"); if (!container) return; // @ts-ignore var easyplayer = new EasyPlayerPro(container, { isLive: config.value.isLive, //默认 true bufferTime: 0.2, // 缓存时长 stretch: false, MSE: config.value.MSE, WCS: config.value.WCS, hasAudio: config.value.hasAudio, watermark: { text: { content: "easyplayer-pro" }, right: 10, top: 10 }, }); easyplayer.on("fullscreen", function (flag) { console.log("is fullscreen", flag); }); easyplayer.on("playbackRate", (rate) => { easyplayer.setRate(rate); }); easyplayer.on("playbackSeek", (data) => { console.log("playbackSeek", data); }); playerInfo.value = easyplayer; };

然后组件加载时调用即可。

配置属性:

事件回调

使用方法:
//播放 EasyPlayrPro.on('play', function () { console.log('play'); })

记得文件要放在pubilc文件下 不然打包不进去。  

VUE组件版

使用起来更加方便,但是相比于上面那个方式延迟还是高了一些,不知道为什么。有懂得大佬指点一下非常感谢

地址

magic-easyplayer - npm

功能说明

  • [x] *支持定制控制器;
  • [x] *新增H265视频窗口适配[v1.1.0];
  • [x] 支持 MP4 播放;
  • [x] 支持 m3u8/HLS 播放;
  • [x] 支持 HTTP-FLV/WS-FLV 播放;
  • [x] 支持直播和点播播放;
  • [x] 支持播放器快照截图;
  • [x] 支持点播多清晰度播放;
  • [x] 支持全屏或比例显示;
  • [x] 自动检测 IE 浏览器兼容播放;

[x] 支持重连播放;

集成示例

  • 使用方式
  • [x] vue集成
 npm install magic-easyplayer --save 
  • Vue 集成调用

copy node_modules/magic-easyplayer/dist/crossdomain.xml 到 静态文件 根目录

copy node_modules/magic-easyplayer/dist/EasyPlayer-lib.min.js 到 静态文件 根目录

注意: 没有调用会出现无法加载对应插件的报错

在 html 中引用 dist/EasyPlayer-lib.min.js

H.265

copy node_modules/magic-easyplayer/dist/EasyPlayer.wasm 到 静态文件 根目录

具体可以到npm库里去看 

https://www.npmjs.com/package/magic-easyplayer

Read more

HarmonyOS NEXT开发进阶(十七):WebView 拉起 H5 页面

HarmonyOS NEXT开发进阶(十七):WebView 拉起 H5 页面

文章目录 * 一、问题说明 * 1.1 H5 应用加载失败或功能异常 * 1.2 H5 麦克风等权限申请无响应 * 1.3 多权限配置与交互冲突 * 二、原因分析 * 2.1 WebView 核心配置与权限缺失 * 2.2 权限申请与响应逻辑断裂 * 2.3 WebView 实例与生命周期管理不当 * 三、解决思路 * 3.1 核心配置与权限一体化处理 * 3.2 权限申请与 WebView 响应联动 * 3.3 调试与实例管理规范化 * 四、解决方案 * 4.1 工具函数:权限辅助(复用基础能力) * 4.2 WebView

Spring 核心技术解析【纯干货版】- XV:Spring 网络模块 Spring-Web 模块精讲

Spring 核心技术解析【纯干货版】- XV:Spring 网络模块 Spring-Web 模块精讲

Spring Framework 作为 Java 生态中最流行的企业级开发框架,提供了丰富的模块化支持。其中,Spring Web 模块是支撑 Web 开发的基础组件,无论是传统的 MVC 应用,还是 REST API 及微服务架构,都离不开它的核心能力。 本篇文章将深入解析 Spring Web 模块的核心概念、依赖关系、作用及关键组件,并通过实际案例展示如何使用 Spring Web 进行 RESTful API 调用。本文力求内容精炼、干货满满,帮助你掌握 Spring Web 的核心技术点。 文章目录 * 1、Spring-Web 模块介绍 * 1.1、Spring-Web 模块概述 * 1.2、Spring-Web

企业级web新能源充电系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】

企业级web新能源充电系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】

系统架构设计### 摘要 随着全球能源结构的转型和环保意识的提升,新能源汽车的普及成为交通领域的重要发展方向。充电基础设施作为新能源汽车推广的关键支撑,其智能化管理需求日益凸显。传统充电桩管理系统在数据处理、用户体验和扩展性方面存在不足,无法满足企业级高效运营的需求。为解决这一问题,本研究设计并实现了一套基于SpringBoot+Vue+MyBatis架构的企业级新能源充电系统管理系统。该系统通过整合物联网技术、云计算和大数据分析,实现对充电桩的远程监控、动态调度和用户行为分析,为运营商提供高效、稳定的管理工具。关键词:新能源充电系统、企业级管理、SpringBoot、Vue、MyBatis、MySQL。 本系统采用前后端分离架构,后端基于SpringBoot框架实现高效稳定的业务逻辑处理,前端使用Vue.js构建动态交互界面,数据库采用MySQL存储系统核心数据。系统功能涵盖充电桩管理、用户管理、订单管理、数据统计及权限控制模块,支持多角色用户(如管理员、运营商、普通用户)的差异化操作。通过MyBatis实现数据持久化,结合Redis缓存提升系统响应速度。系统还集成第三方支付接口

山东大学《Web数据管理》期末复习宝典【万字解析!】

山东大学《Web数据管理》期末复习宝典【万字解析!】

🌈 个人主页:十二月的猫-ZEEKLOG博客 🔥 系列专栏:🏀山东大学期末速通专用_十二月的猫的博客-ZEEKLOG博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光  目录 1. 第二章 网络爬虫 1.1 爬虫基础知识 1.2 爬虫分类 1.3 开源工具 Nutch 2. 第三章 网页分析 2.1 正则表达式 2.2 DOM模型 2.3 Beautiful Soup工具 2.4 Scrapy框架 2.5 不同爬虫工具比较 2.6 元搜索引擎 3. 第四章 爬虫与网站的博弈 3.1 Robot协议 3.