更新记录
1.0.0(2025-03-24)
v 1.0.0
功能特点
音频波形可视化:通过 HTML5 的
平台兼容性
App |
快应用 |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
HBuilderX 3.96 |
× |
√ |
× |
× |
× |
× |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
鸿蒙元服务 |
× |
× |
× |
× |
× |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
× |
× |
× |
× |
× |
× |
× |
× |
× |
插件使用说明 - index.vue
概述
index.vue
是一个用于音频可视化的 Vue 组件,提供了音频播放、暂停、停止和可视化波形图的功能。该组件支持多种音频格式,并允许用户自定义音频的显示参数。
组件属性
Props
属性名 |
类型 |
默认值 |
描述 |
audioSource |
String |
'' |
音频源的 URL 地址 |
width |
String |
'100%' |
画布的宽度 |
height |
String |
'140px' |
画布的高度 |
barWidth |
Number |
8 |
柱子的宽度 |
barGap |
Number |
2 |
柱子之间的间隔 |
barCount |
Number |
20 |
柱子的数量(0 表示自动计算) |
barColor |
String |
'#2b85e4' |
柱子的颜色 |
capColor |
String |
'#2b85e4' |
顶部线条的颜色 |
autoPlay |
Boolean |
true |
是否自动播放音频 |
事件
事件列表
事件名 |
描述 |
audio-play-start |
音频开始播放时触发 |
audio-loaded |
音频加载完成时触发 |
audio-error |
音频播放或加载出错时触发 |
audio-stopped |
音频停止播放时触发 |
audio-paused |
音频暂停时触发 |
audio-resumed |
音频恢复播放时触发 |
audio-replayed |
音频重新播放时触发 |
方法
方法列表
方法名 |
描述 |
initAudio() |
初始化音频上下文 |
drawAudio(analyser) |
绘制音频波形图 |
playAudio(buffer, start) |
播放音频 |
loadMusic(music) |
加载音频 |
stopAudio() |
停止播放音频 |
pauseAudio() |
暂停播放音频 |
resumeAudio() |
恢复播放音频 |
replayAudio() |
重新播放音频 |
playAgain() |
再次播放音频 |
使用示例
<Visualize
ref="audioVisualizer"
:audioSource="audioUrl"
:width="yourWidth"
:height="yourHeight"
:barWidth="yourBarWidth"
:barGap="yourBarGap"
:barCount="yourBarCount"
:barColor="yourBarColor"
:capColor="yourCapColor"
:autoPlay="yourAutoPlay"
@audio-loaded="handleAudioLoaded"
@audio-play-start="handleAudioPlayStart"
@audio-paused="handleAudioPaused"
@audio-resumed="handleAudioResumed"
@audio-stopped="handleAudioStopped"
@audio-replayed="handleAudioReplayed"
@audio-error="handleAudioError"
/>
export default {
methods: {
// 初始化音浪/播放方法
// this.$nextTick(() => {
// this.$refs.audioVisualizer.initAudio();
// });
// 更换音源的方法
changeAudioSource(newUrl) {
this.audioUrl = newUrl;
// 组件会自动监听 audioSource 的变化并重新加载
if (this.$refs.audioVisualizer) {
this.$refs.audioVisualizer.initAudio();
}
},
handleAudioLoaded({ duration }) {
// 音频加载完成时的处理逻辑
console.log('音频已加载完成,时长:', duration);
},
handleAudioPlayStart() {
// 音频开始播放时的处理逻辑
console.log('音频开始播放');
},
handleAudioPaused() {
// 音频暂停时的处理逻辑
console.log('音频已暂停');
},
handleAudioResumed() {
// 音频恢复播放时的处理逻辑
console.log('音频已恢复播放');
},
handleAudioStopped() {
// 音频停止时的处理逻辑
console.log('音频已停止');
},
handleAudioReplayed() {
// 音频重新播放时的处理逻辑
console.log('音频已重新播放');
},
handleAudioError(error) {
// 音频处理出错时的处理逻辑
console.error('音频处理出错:', error);
}
}
};