vue使用vue-dplayer播放m3u8视频


前言

后台提供了一个视频播放路径,为切片完的m3u8类型的,在前端播放,网上参照了几个教程,这里总结一下。


提示:以下是本篇文章正文内容,下面案例可供参考

一、安装插件

有的教程只安装了第一个,导致视频无法播放,前端控制台报关于Hls的错

npm install vue-dplayer -S
npm install hls.js -S

二、使用步骤

1.main.js全局引入

window.Hls = require('hls.js')
import VueDPlayer from 'vue-dplayer'
import 'vue-dplayer/dist/vue-dplayer.css'
Vue.use(VueDPlayer)

2.页面引入

<d-player ref="player" :options="videoPlay.dplayerOptions"></d-player>

3.属性配置

我在return里定义了一下,具体的配置内容在点击视频文件时配置

return {
	videoPlay: {
	  dplayerOptions: {}
	}
}

点击完视频文件的方法:

// 针对部分options属性进行配置
this.videoPlay.dplayerOptions= {
  title:XXXX,//这里是自己的文件名
  theme: '#b7daff',  // 风格颜色,例如播放条,音量条的颜色
  loop: false,  // 是否自动循环
  lang: 'zh-cn',  // 语言,'en', 'zh-cn', 'zh-tw'
  screenshot: true,  // 是否允许截图(按钮),点击可以自动将截图下载到本地
  hotkey: true,  // 是否支持热键,调节音量,播放,暂停等
  preload: 'auto',  // 自动预加载
  volume: 0.7,  // 初始化音量
  logo: require('@/assets/logo.png'),  // 在视频左脚上打一个logo
  video: {
    url: XXXX, // 自己的播放视频的路径URl
    quality: [  // 设置多个质量的视频
      {
        name: 'HD',
        url: XXXX, // 自己的播放视频的路径URl
        type: 'auto',  // 'auto', 'hls', 'flv', 'dash', 'webtorrent', 'normal' 或 其他自定义类型
      },
      {
         name: 'SD',
         url: XXXX, // 自己的播放视频的路径URl
         type: 'auto',
       }
    ],
    defaultQuality: 0,  // 默认是HD
  },
  highlight: [  // 进度条时间点高亮
    {
      text: '10M',
      time: 600,
    },
    {
      text: '20M',
      time: 1200,
    },
  ],
}

我在使用过程中把一些用不到的功能给去掉了,如:弹幕、右键菜单、视频封面、进度条的缩略图

### 实现 m3u8 视频播放 为了在 Vue.js 项目中实现 m3u8 格式的视频播放,可以采用 `video.js` 结合 `videojs-contrib-hls` 插件的方式。以下是具体方法: #### 安装必要的依赖库 首先,在项目根目录下通过命令行工具安装所需依赖包。 ```bash npm install video.js --save npm install videojs-contrib-hls --save ``` 这些操作会下载并保存最新版的 Video.js 及其 HLS 流媒体扩展到项目的 node_modules 文件夹里[^4]。 #### 配置 main.js 或入口文件 接着,在应用的主要 JavaScript 文件(通常是 src/main.js)中全局注册这两个模块及其 CSS 资源。 ```javascript // 引入 VideoJS 和样式表以及 hls 支持 import 'video.js/dist/video-js.css'; import videojs from 'video.js'; window.videojs = videojs; require('videojs-contrib-hls'); ``` 这段代码不仅加载了 Video.js 的核心功能和默认外观设计,还启用了对 HTTP Live Streaming (HLS) 协议的支持,从而能够处理 .m3u8 类型的内容。 #### 创建自定义组件用于显示播放器 最后一步是在应用程序内部创建一个新的单文件组件来封装实际的 HTML5 `<video>` 元素,并初始化 Video.js 播放实例。 ```html <template> <div class="video-container"> <!-- 这里的 id 属性非常重要 --> <video ref="myVideoPlayer" class="video-js vjs-default-skin"></video> </div> </template> <script> export default { name: "MyVideoPlayer", mounted() { this.player = window.videojs( this.$refs.myVideoPlayer, { autoplay: false, controls: true }, function onPlayerReady() { console.log("Your player is ready!"); } ); const url = 'https://path-to-your-m3u8-file/stream.m3u8'; // 替换成自己的 M3U8 地址 this.player.src({ type: "application/x-mpegURL", src: url }); }, beforeDestroy() { if (this.player) { this.player.dispose(); } } }; </script> <style scoped lang="scss"> /* 自定义样式 */ .video-container { width: 100%; } </style> ``` 此模板展示了如何设置一个简单的 Vue 组件,该组件会在挂载时自动配置好 Video.js 并指向指定 URL 开始尝试获取并回放 H.264 编码的数据流。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值