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 相关文章推荐
SpringBoot+Vue 前后端合并部署的配置方法
Dec 30 Vue.js
Vue 实例中使用$refs的注意事项
Jan 29 Vue.js
vue监听键盘事件的相关总结
Jan 29 Vue.js
vue实现禁止浏览器记住密码功能的示例代码
Feb 03 Vue.js
vue 动态添加的路由页面刷新时失效的原因及解决方案
Feb 26 Vue.js
vue使用v-model进行跨组件绑定的基本实现方法
Apr 28 Vue.js
idea编译器vue缩进报错问题场景分析
Jul 04 Vue.js
vue3获取当前路由地址
Feb 18 Vue.js
vue项目中的支付功能实现(微信支付和支付宝支付)
Feb 18 Vue.js
Vue中Object.assign清空数据报错的解决方案
Mar 03 Vue.js
vue打包时去掉所有的console.log
Apr 10 Vue.js
vue里使用create, mounted调用方法
Apr 26 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
使用bcompiler对PHP文件进行加密的代码
2010/08/29 PHP
PHP命名空间(namespace)的动态访问及使用技巧
2014/08/18 PHP
php中get_cfg_var()和ini_get()的用法及区别
2015/03/04 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
php设计模式之策略模式应用案例详解
2019/06/17 PHP
浅谈php常用的7大框架的优缺点
2020/07/20 PHP
用Javascript做flash做的事..才完成的一个类.Auntion Action var 0.1
2007/02/23 Javascript
div层的移动及性能优化
2010/11/16 Javascript
关于ExtJS4.1:快捷键支持的问题
2013/04/24 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
javascript alert乱码的解决方法
2013/11/05 Javascript
JS中数组Array的用法示例介绍
2014/02/20 Javascript
用jquery模仿的a的title属性的例子
2014/10/22 Javascript
使用JavaScript和C#中获得referer
2014/11/14 Javascript
原生JS实现响应式瀑布流布局
2015/04/02 Javascript
JS实现登录页面记住密码和enter键登录方法推荐
2016/05/10 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
2018/01/18 Javascript
vue路由前进后退动画效果的实现代码
2018/12/10 Javascript
详细介绍解决vue和jsp结合的方法
2020/02/06 Javascript
解决vue做详情页跳转的时候使用created方法 数据不会更新问题
2020/07/24 Javascript
python SSH模块登录,远程机执行shell命令实例解析
2018/01/12 Python
python如何修改装饰器中参数
2018/03/20 Python
python实现人人自动回复、抢沙发功能
2018/06/08 Python
对Python 获取类的成员变量及临时变量的方法详解
2019/01/22 Python
Python实现合并两个有序链表的方法示例
2019/01/31 Python
python中pytest收集用例规则与运行指定用例详解
2019/06/27 Python
如何理解python对象
2020/06/21 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
2021/01/28 Python
CSS3 text shadow字体阴影效果
2016/01/08 HTML / CSS
后勤工作职责
2013/12/22 职场文书
幼儿园教师考核制度
2014/02/01 职场文书
社团活动总结怎么写
2014/06/30 职场文书
颐和园英文导游词
2015/01/30 职场文书
2015年公民道德宣传日活动总结
2015/03/23 职场文书
李强优秀员工观后感
2015/06/16 职场文书
2016大学优秀学生干部事迹材料
2016/03/01 职场文书