VUE3使用wavesurfer.js

1. wavesurfer.js官网地址:https://wavesurfer-js.org/
2.下载插件(注意:下载6版本,最新版本暂时不稳定)

npm install --save wavesurfer.js@6 

3.引入需要的插件 
绘制图的元素(vue3ref获取元素)

4.初始化音频

 

 我这里直接引用的是线上地址(如果后端返回文件流就使用blob)

 

 

Vue3项目中引入和使用wavesurfer.js插件可以让你创建动态的音频波形图。以下是安装步骤及基本使用: 1. **安装 Wavesurfer.js**: 首先,在你的项目中安装wavesurfer.js。如果你使用npm,可以在`package.json`文件里通过命令行运行: ``` npm install wavesurfer.js @wavesurfer-js/plugin-behaviors ``` 如果你使用yarn,则执行: ``` yarn add wavesurfer.js @wavesurfer-js/plugin-behaviors ``` 2. **设置基础配置**: 在你的项目入口文件(通常是main.js或setup.ts)中,导入并注册wavesurfer: ```javascript import * as Wavesurfer from &#39;wavesurfer.js&#39;; import { createApp } from &#39;vue&#39;; const app = createApp(App); // 初始化wavesurfer实例 app.config.globalProperties.$wavesurfer = Wavesurfer.create({ container: &#39;#waveform&#39;, // 波形图容器元素ID height: 400, // 波形高度 waveColor: &#39;#fff&#39;, // 波形颜色 progressColor: &#39;#ff0000&#39;, // 进度条颜色 }); ``` 3. **加载音频数据**: 在组件内部,你可以从服务器获取音频数据或者处理本地音频文件: ```javascript mounted() { this.loadAudio(&#39;path/to/audio/file.mp3&#39;); }, async loadAudio(url) { await new Promise((resolve) => { const audio = new Audio(url); audio.addEventListener(&#39;canplaythrough&#39;, () => { this.$wavesurfer.load(audio.src); resolve(); }); }); } ``` 4. **添加时间轴插件 (Timeline)**: `@wavesurfer-js/plugin-timeline-markers` 插件可以帮助你在时间线上添加标记点。安装插件: ``` npm install @wavesurfer-js/plugin-timeline-markers ``` 然后在初始化wavesurfer时启用它: ```javascript Wavesurfer.create({ ..., plugins: [ WaveSurfer.plugins.TimelineMarkers, ... // 其他插件 ] }); ``` 使用示例: ```javascript methods: { addMarkerAtTime(time) { this.$wavesurfer.addMarker({ time: time, name: &#39;Custom Marker&#39;, color: &#39;blue&#39;, }); } } ``` 5. **显示时间轴**: 要显示时间轴,你还需要一个HTML模板元素,并绑定wavesurfer的`onTimelineClick`事件: ```html <div id="timeline" @click="handleTimelineClick($event, $wavesurfer.getCurrentTime())"></div> ``` 在组件中定义 `handleTimelineClick` 函数。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值