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实现下载文件流完整前后端代码
Nov 17 Vue.js
在Vue中使用Echarts可视化库的完整步骤记录
Nov 18 Vue.js
Vue项目如何引入bootstrap、elementUI、echarts
Nov 26 Vue.js
Vue实现图书管理小案例
Dec 03 Vue.js
vue+openlayers绘制省市边界线
Dec 24 Vue.js
Vue实现省市区三级联动
Dec 27 Vue.js
vue实现防抖的实例代码
Jan 11 Vue.js
Vue看了就会的8个小技巧
Jan 21 Vue.js
如何理解Vue简单状态管理之store模式
May 15 Vue.js
详细聊聊vue中组件的props属性
Nov 02 Vue.js
vue中使用mockjs配置和使用方式
Apr 06 Vue.js
vue3 自定义图片放大器效果的示例代码
Jul 23 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
php+AJAX传送中文会导致乱码的问题的解决方法
2008/09/08 PHP
完美解决:Apache启动问题―(OS 10022)提供了一个无效的参数
2013/06/08 PHP
浅析PHP Socket技术
2013/08/02 PHP
基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据
2015/09/23 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
2016/05/20 PHP
Javascript常考语句107条收集
2010/03/09 Javascript
js判断是否为ie的方法小结
2014/01/13 Javascript
JS按回车键实现登录的方法
2014/08/25 Javascript
javascript数组遍历for与for in区别详解
2014/12/04 Javascript
jQuery使用$.ajax进行即时验证实例详解
2015/12/11 Javascript
js实现的万能flv网页播放器代码
2016/04/30 Javascript
BootStrap 可编辑表Table格
2016/11/24 Javascript
深入理解JavaScript中的for循环
2017/02/07 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
vue.js vue-router如何实现无效路由(404)的友好提示
2017/12/20 Javascript
Vue.js子组件向父组件通信的方法实例代码详解
2018/12/10 Javascript
js实现跟随鼠标移动的小球
2019/08/26 Javascript
vue的三种图片引入方式代码实例
2019/11/19 Javascript
Python输出PowerPoint(ppt)文件中全部文字信息的方法
2015/04/28 Python
Python装饰器实现几类验证功能做法实例
2017/05/18 Python
HTML中使用python屏蔽一些基本功能的方法
2017/07/07 Python
基于循环神经网络(RNN)的古诗生成器
2018/03/26 Python
python如何实现代码检查
2019/06/28 Python
Python实现朴素贝叶斯的学习与分类过程解析
2019/08/24 Python
Pytorch 之修改Tensor部分值方式
2019/12/27 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
2020/02/25 Python
Python基于gevent实现高并发代码实例
2020/05/15 Python
python dir函数快速掌握用法技巧
2020/12/09 Python
Groupon比利时官方网站:特卖和网上购物高达-70%
2019/08/09 全球购物
ellesse美国官方商店:意大利高级运动服品牌
2019/10/29 全球购物
2014年小学图书室工作总结
2014/12/09 职场文书
Redis持久化与主从复制的实践
2021/04/27 Redis
mysql联合索引的使用规则
2021/06/23 MySQL
详解python的异常捕获
2022/03/03 Python
恶魔之树最顶端的三颗果实 震震果实上榜,第一可以制造岩浆
2022/03/18 日漫
Python实现日志实时监测的示例详解
2022/04/06 Python