通过EasyPlayer在浏览器中实现H.264视频流播放

Vue项目实战:通过EasyPlayer在浏览器中实现H.264视频流播放

目的

在浏览器中展示并播放第三方的 HLS 视频流,以下步骤详细介绍了如何使用 EasyPlayer 来实现此功能,并提供了优化和规范化集成的指南。

1.安装必要的包

为了集成 EasyPlayer 到您的项目中,首先需要安装两个包:

 npm install @easydarwin/easyplayer --save
 npm install copy-webpack-plugin@5.1.2 --save-dev
  • @easydarwin/easyplayer: 这个包包含 EasyPlayer 组件,用于在 Vue 应用中播放视频。
  • copy-webpack-plugin: 用于将特定文件复制到设定的路径,以确保 EasyPlayer 的依赖可以在构建后的项目中正确访问。

下面是官方文档的解释

  • Vue 集成调用(添加在vue.config.js文件 对应第二步)

copy node_modules/@easydarwin/easyplayer/dist/component/EasyPlayer.swf 到 静态文件 根目录

copy node_modules/@easydarwin/easyplayer/dist/component/crossdomain.xml 到 静态文件 根目录

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

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

在 html 中引用 dist/component/EasyPlayer-lib.min.js(引入js文件 对应第三步)

###H.265 copy node_modules/@easydarwin/easyplayer/dist/component/EasyPlayer.wasm 到 静态文件 根目录

2.Vue 配置 (vue.config.js)

接下来,在项目的 vue.config.js 文件中进行如下配置,以确保 EasyPlayer 组件的依赖被正确复制到静态资源目录中:

const CopyWebpackPlugin = require('copy-webpack-plugin');

module.exports = {
  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/'
        }
      ])
    ]
  }
};

3.引入 EasyPlayer 依赖

确保在项目的启动文件或 HTML 模板中引入 EasyPlayer-lib.min.js

<!-- 在 public/index.html 中插入下面的 script 标签 -->
<script src="./libs/EasyPlayer/EasyPlayer-lib.min.js"></script>

在这里插入图片描述

4.使用 EasyPlayer 组件

在 Vue 组件中引用 EasyPlayer,并设置必要的属性来显示视频流:

<template>
  <el-row>
    <el-col :span="24">
    <easy-player
      :video-url="videoUrl"
      :live="true"
      :stretch="false"
      :video-title="'右上角的标题,要加单引号'"
      style="width: 100%; height: 85vh"
       ></easy-player>
    </el-col>
  </el-row>
</template>
<script>
import EasyPlayer from '@easydarwin/easyplayer'

export default {
  components: {  EasyPlayer },
  data() {
    return {
      videoUrl: 'http://********.m3u8',
    };
  }
};
</script>
5.效果展示

在这里插入图片描述

6.官方支持的属性

EasyPlayer 支持多种属性来自定义播放器的功能和外观,这些属性通常在组件标签中设置,如示例所示。

通过以上步骤,您可以优化并规范地在浏览器中展示和播放第三方 HLS 视频流。

一般在标签里引用如

​ <easy-player
​ :video-url=“videoUrl”
​ :live=“true”
​ :stretch=“false”
​ :video-title=“‘右上角的标题,要加单引号’”
​ style=“width: 100%; height: 85vh”
​ >

配置属性
参数说明类型默认值
video-url视频地址String-
video-title视频右上角显示的标题String-
poster视频封面图片String-
auto-play自动播放Booleantrue
live是否直播, 标识要不要显示进度条Booleantrue
speed是否显示倍速播放按钮。注意:当live为true时,此属性不生效Booleantrue
loop是否轮播。Booleanfalse
alt视频流地址没有指定情况下, 视频所在区域显示的文字String无信号
muted是否静音Booleanfalse
aspect视频显示区域的宽高比String16:9
isaspect视频显示区域是否强制宽高比Booleantrue
loading指示加载状态, 支持 sync 修饰符String-
fluent流畅模式Booleantrue
timeout加载超时(秒)Number20
stretch是否不同分辨率强制铺满窗口Booleanfalse
show-custom-button是否在工具栏显示自定义按钮(极速/流畅, 拉伸/标准)Booleantrue
isresolution是否在播放 m3u8 时显示多清晰度选择Booleanfalse
isresolution供选择的清晰度 “yh,fhd,hd,sd”, yh:原始分辨率fhd:超清,hd:高清,sd:标清-
resolutiondefault默认播放的清晰度Stringhd
isTransCoding是否开启转rawBooleanfalse

HTTP-FLV 播放相关属性

注意:此属性只在播放flv格式的流时生效。

属性说明类型默认值
hasaudio是否有音频,传递该属性可以加快启播速度Boolean默认不配置自动判断
hasvideo是否有视频,传递该属性可以加快启播速度Boolean默认不配置自动判断
事件回调
方法名说明参数
video-url触发通知消息type: ‘’, message: ‘’
ended播放结束-
timeupdate进度更新当前时间进度
pause暂停当前时间进度
play播放当前时间进度
  • 27
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热烈的眼泪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值