vue使用wavesurfer.js解决音频可视化播放问题


Posted in Vue.js onApril 04, 2022

之前给大家介绍过vue中音频wavesurfer.js的使用方法,感兴趣的朋友可以点击查看,今天继续给大家普及vue解决音频可视化播放,使用wavesurfer.js问题,效果图如下所示:

上效果:

vue使用wavesurfer.js解决音频可视化播放问题

vue使用wavesurfer.js解决音频可视化播放问题

1.安装wavesurfer

npm install wavesurfer.js

2.在页面导入

import WaveSurfer from 'wavesurfer.js'

注:我没有使用时间轴,所以没有引入,如果需要再引入

import Timeline from 'wavesurfer.js/dist/plugin/wavesurfer.timeline.js'

3.上源码

<template>
  <el-row>
    <el-card class="card" :body-style="{ padding: '10px' }">
      <div id="waveform" ref="waveform">
      </div>
    </el-card>
  </el-row>
  <div>
        <el-button type="primary" @click="playMusic">
          <i class="el-icon-video-play"></i>
          播放 /
          <i class="el-icon-video-pausee"></i>
          暂停
        </el-button>
</template>
<script>
import WaveSurfer from "wavesurfer.js";
// import Timeline from "wavesurfer.js/dist/plugin/wavesurfer.timeline.js";
export default {
  name: "Details",
  data() {
    return {
      wavesurfer: null,
    };
  },
  mounted() {
    this.$nextTick(() => {
      this.wavesurfer = WaveSurfer.create({
        container: this.$refs.waveform,
        // waveColor: '#409EFF',
        barWidth: 1,
        cursorColor: "black",
        progressColor: "blue",
        backend: "MediaElement",
        // mediaControls: false,
        audioRate: "1",
        //使用时间轴插件
      });
      // 特别提醒:此处需要使用require(相对路径),否则会报错
      this.wavesurfer.load(require("../mp3/living.mp3"));
    });
  methods: {
    playMusic() {
      //"播放/暂停"按钮的单击触发事件,暂停的话单击则播放,正在播放的话单击则暂停播放
      this.wavesurfer.playPause.bind(this.wavesurfer)();
    },
};
</script>
<style >
.mixin-components-container {
  width: 100% !important;
  #f0f2f5;
  padding: 30px;
  /* min-height: calc(100vh - 84px); */
}
.el-card__body {
  height: 70px !important;
  padding: 0 auto !important;
.card {
  height: 70px;
#waveform {
wave {
  height: 50px !important;
</style>

4.注释:

这个插件实在太吊了,官方文档太厉害,上链接:https://wavesurfer-js.org/

我用到了几个方法:

4.1.

this.wavesurfer.play(0, 212); 指定开始时间和结束时间,以秒为单位,0秒开始,212秒结束

4.2.

this.wavesurfer.on("pause", () => {
console.log('我暂停了')
});

监听暂停

4.3.

this.wavesurfer.load(require("../mp3/living.mp3")); 读取目录路径里面的Mp3文件,可以测试用
this.wavesurfer.load('xxx.mp3')); 读取网络地址,有接口就用这个

到此这篇关于vue使用wavesurfer.js解决音频可视化播放的文章就介绍到这了,更多相关vue音频可视化播放内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
Vue项目利用axios请求接口下载excel
Nov 17 Vue.js
深入了解Vue3模板编译原理
Nov 19 Vue.js
vue 基于abstract 路由模式 实现页面内嵌的示例代码
Dec 14 Vue.js
VUE中鼠标滚轮使div左右滚动的方法详解
Dec 14 Vue.js
vue实现验证用户名是否可用
Jan 20 Vue.js
如何在vue中使用video.js播放m3u8格式的视频
Feb 01 Vue.js
springboot+VUE实现登录注册
May 27 Vue.js
vue特效之翻牌动画
Apr 20 Vue.js
vue 把二维或多维数组转一维数组
Apr 24 Vue.js
Vue深入理解插槽slot的使用
Aug 05 Vue.js
Vue router配置与使用分析讲解
Dec 24 Vue.js
vue中div禁止点击事件的实现
Apr 02 #Vue.js
Vue组件更新数据v-model不生效的解决
Apr 02 #Vue.js
Vue+TypeScript中处理computed方式
Apr 02 #Vue.js
Vue+Flask实现图片传输功能
Apr 01 #Vue.js
在vue中import()语法不能传入变量的问题及解决
Apr 01 #Vue.js
Vue中使用import进行路由懒加载的原理分析
Apr 01 #Vue.js
vue使用refs获取嵌套组件中的值过程
Mar 31 #Vue.js
You might like
phpMyAdmin下载、安装和使用入门教程
2007/05/31 PHP
php中运用http调用的GET和POST方法示例
2014/09/29 PHP
高质量PHP代码的50个实用技巧必备(下)
2016/01/22 PHP
zen_cart实现支付前生成订单的方法
2016/05/06 PHP
详解yii2使用多个数据库的案例
2017/06/16 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
2021/02/26 PHP
超清晰的document对象详解
2007/02/27 Javascript
分享精心挑选的12款优秀jQuery Ajax分页插件和教程
2012/08/09 Javascript
jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法
2013/05/13 Javascript
jquery获取被勾选的checked(选中)的那一行的3列和4列的值
2013/07/04 Javascript
javascript搜索框点击文字消失失焦时文本出现
2014/09/18 Javascript
JavaScript定时器制作弹窗小广告
2017/02/05 Javascript
Angular.JS中的this指向详解
2017/05/17 Javascript
AngularJS 最常用的八种功能(基础知识)
2017/06/26 Javascript
详解vue项目构建与实战
2017/06/27 Javascript
浅谈vue2 单页面如何设置网页title
2017/11/08 Javascript
vue实现裁切图片同时实现放大、缩小、旋转功能
2018/03/02 Javascript
jQuery实现模糊搜索功能的方法分析
2018/06/29 jQuery
使用gulp构建前端自动化的方法示例
2018/12/25 Javascript
详解Node.js使用token进行认证的简单示例
2020/05/25 Javascript
vue addRoutes路由动态加载操作
2020/08/04 Javascript
VSCode 添加自定义注释的方法(附带红色警戒经典注释风格)
2020/08/27 Javascript
[02:42]完美大师赛主赛事淘汰赛第三日观众采访
2017/11/25 DOTA
在Python中利用Pandas库处理大数据的简单介绍
2015/04/07 Python
Python中绑定与未绑定的类方法用法分析
2016/04/29 Python
python实现通过队列完成进程间的多任务功能示例
2019/10/28 Python
使用Puppeteer爬取微信文章的实现
2020/02/11 Python
在django中form的label和verbose name的区别说明
2020/05/20 Python
django template实现定义临时变量,自定义赋值、自增实例
2020/07/12 Python
Python中logger日志模块详解
2020/08/04 Python
美国最大的万圣节服装网站:HalloweenCostumes.com
2017/10/12 全球购物
远程学习的教学用品和家庭学习资源:Really Good Stuff
2020/04/27 全球购物
新闻报道策划方案
2014/06/11 职场文书
法人单位适用的授权委托书
2014/09/19 职场文书
2015元旦标语横幅
2014/12/09 职场文书
vue3使用vuedraggable实现拖拽功能
2022/04/06 Vue.js