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+iview实现分页及查询功能
Nov 17 Vue.js
vue el-upload上传文件的示例代码
Dec 21 Vue.js
Vue.extend 登录注册模态框的实现
Dec 29 Vue.js
vue实现树状表格效果
Dec 29 Vue.js
详解template标签用法(含vue中的用法总结)
Jan 12 Vue.js
vue自定义组件实现双向绑定
Jan 13 Vue.js
如何让vue长列表快速加载
Mar 29 Vue.js
原生JS封装vue Tab切换效果
Apr 28 Vue.js
详解Vue的sync修饰符
May 15 Vue.js
Vue和Flask通信的实现
May 19 Vue.js
vue中 this.$set的使用详解
Nov 17 Vue.js
ant design vue的form表单取值方法
Jun 01 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基于DOMDocument解析和生成xml的方法分析
2017/07/17 PHP
PHP实现的折半查找算法示例
2017/12/19 PHP
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
点图片上一页下一页翻页效果
2008/07/09 Javascript
在表单提交前进行验证的几种方式整理
2013/07/31 Javascript
jquery实现手风琴效果实例代码
2013/11/15 Javascript
Bootstrap每天必学之缩略图与警示窗
2015/11/29 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
jquery使用on绑定a标签无效 只能用live解决
2016/06/02 Javascript
详解jquery validate实现表单验证 (正则表达式)
2017/01/18 Javascript
jQuery Position方法使用和兼容性
2017/08/23 jQuery
zTree异步加载展开第一级节点的实现方法
2017/09/05 Javascript
浅谈vue2 单页面如何设置网页title
2017/11/08 Javascript
JS实现碰撞检测的方法分析
2018/01/19 Javascript
还不懂递归?读完这篇文章保证你会懂
2018/07/29 Javascript
浅谈Webpack核心模块tapable解析
2018/09/11 Javascript
Angular父子组件通过服务传参的示例方法
2018/10/31 Javascript
微信小程序实现的3d轮播图效果示例【基于swiper组件】
2018/12/11 Javascript
实例讲解vue源码架构
2019/01/24 Javascript
js 图片懒加载的实现
2020/10/21 Javascript
使用Python实现下载网易云音乐的高清MV
2015/03/16 Python
Python:Numpy 求平均向量的实例
2019/06/29 Python
深入浅析python的第三方库pandas
2020/02/13 Python
浅谈python3 构造函数和析构函数
2020/03/12 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
Python 内存管理机制全面分析
2021/01/16 Python
html5播放视频且动态截图实现步骤与代码(支持safari其他未测试)
2013/01/06 HTML / CSS
使用canvas对多图片拼合并导出图片的方法
2018/08/28 HTML / CSS
英国可持续奢侈品包包品牌:Elvis & Kresse
2018/08/05 全球购物
巴基斯坦购物网站:Goto
2019/03/11 全球购物
幼儿园大班毕业感言
2014/02/06 职场文书
团日活动总结范文
2014/04/25 职场文书
导游欢送词
2015/01/31 职场文书
运动会5000米加油稿
2015/07/21 职场文书
2015年入党积极分子培养考察意见
2015/08/12 职场文书
使用vue判断当前环境是安卓还是IOS
2022/04/12 Vue.js