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中使用inheritAttrs实现组件的扩展性介绍
Dec 07 Vue.js
vue中watch的用法汇总
Dec 28 Vue.js
vue+vant 上传图片需要注意的地方
Jan 03 Vue.js
vue3弹出层V3Popup实例详解
Jan 04 Vue.js
Vue实现todo应用的示例
Feb 20 Vue.js
vue3如何优雅的实现移动端登录注册模块
Mar 29 Vue.js
vue项目多环境配置(.env)的实现
Jul 21 Vue.js
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
Nov 27 Vue.js
Vue的生命周期一起来看看
Feb 24 Vue.js
vue route新窗口跳转页面并且携带与接收参数
Apr 10 Vue.js
vue css 相对路径导入问题级踩坑记录
Jun 05 Vue.js
VUE递归树形实现多级列表
Jul 15 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使用curl发送json格式数据实例
2013/12/17 PHP
php获取当前时间的毫秒数的方法
2014/01/26 PHP
PHP中把数据库查询结果输出为json格式简单实例
2015/04/09 PHP
php自定义函数转换html标签示例
2016/09/29 PHP
php 多文件上传的实现实例
2016/10/23 PHP
PHP依赖注入原理与用法分析
2018/08/21 PHP
PHP设计模式概论【概念、分类、原则等】
2020/05/01 PHP
JavaScript入门教程(6) Window窗口对象
2009/01/31 Javascript
JS延迟加载(setTimeout) JS最后加载
2010/07/15 Javascript
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
探讨JavaScript中声明全局变量三种方式的异同
2013/12/03 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
动态载入js提高网页打开速度的方法
2014/07/04 Javascript
jquery实现图片左右切换的方法
2015/05/07 Javascript
jQuery插件实现静态HTML验证码校验
2015/11/06 Javascript
html中鼠标滚轮事件onmousewheel的处理方法
2016/11/11 Javascript
JavaScript实现的仿新浪微博原生态输入字数即时检查功能【兼容IE6】
2017/09/26 Javascript
Three.js加载外部模型的教程详解
2017/11/10 Javascript
ajax请求+vue.js渲染+页面加载的示例
2018/02/11 Javascript
使用vue-router beforEach实现判断用户登录跳转路由筛选功能
2018/06/25 Javascript
使用vuepress搭建静态博客的示例代码
2019/02/14 Javascript
Python中extend和append的区别讲解
2019/01/24 Python
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
python如何解析配置文件并应用到项目中
2019/06/27 Python
关于多元线性回归分析——Python&amp;SPSS
2020/02/24 Python
Django单元测试中Fixtures用法详解
2020/02/25 Python
用css3实现当鼠标移进去时当前亮其他变灰效果
2014/04/08 HTML / CSS
支持IE8的纯css3开发的响应式设计动画菜单教程
2014/11/05 HTML / CSS
SOKOLOV官网:俄罗斯珠宝首饰品牌
2021/01/02 全球购物
测试时代收集的软件测试面试题
2013/09/25 面试题
询价采购方案
2014/06/09 职场文书
2015小学音乐教师个人工作总结
2015/07/21 职场文书
2015初中生物教研组工作总结
2015/07/21 职场文书
本地通过nginx配置反向代理的全过程记录
2021/03/31 Servers
在JavaScript中如何使用宏详解
2021/05/06 Javascript
Mysql关于数据库是否应该使用外键约束详解说明
2021/10/24 MySQL