更新记录

1.0.0(2023-10-17) 下载此版本

微信小程序音频可视化,音频波形图,组件传参方式为typeScript 方式。组件中有三种绘制样式,第一二种已被注释,需要哪种注释其它两种即可; 1.如绘制样式无法满足,可自行在 draw()方法中新增。


平台兼容性

uni-app

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× - - × × - - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
- - - - - - - - - -

欢迎使用本组件

使用:

1.在那个页面使用就引入组件,挂载使用。

复制代码import AudioVisuali from "./components/audioVisuali/index.vue"; import Loading
from "./components/loading2.vue";

2.在 template 中使用,传参为音频地址 url ,组件中就会接收参数进行分析。组件中有 loading 参数,为传递到父级的 loading 变量值

复制代码//这是的loading组件,需要loading的同学替换为你自己的,不需要的直接删除loading相关的代码
<Loading
  v-show="audioLoading"
  class="audioLoad"
  :style="!audioLoading ? 'display:none' : ''"
></Loading>
// 下面为音频组件
<AudioVisuali
  v-show="!audioLoading"
  :url="url"
  ref="audios1"
  :style="audioLoading ? 'display:none' : ''"
  style="width: 100%;position: absolute;"
></AudioVisuali>

3.随便写一个 button 按钮,控制音频的播放、暂停,事件通过 ref 来进行调用。代码有注释,变量的话看注释创建

复制代码// 播放 暂停 playVoice(index){ let audios = this.$refs.audios1; // 获取dom
if(this.audioIndex!=index) { // 这里是因为我有多个音频才做判断
this.audioIndex=index; // 赋值当前点击的音频index if(audios.audioCtxThis!=null)
{ // 音频上下文,不为null(你也可以直接写audios.audioCtxThis判断) //
控制音频结束,且赋值为null audios.audioCtxThis.close() audios.audioCtxThis=null
} this.audioIsPlay = false; // 是否播放的参数,赋值false未播放 this.audioLoading
= true; // loading赋值为加载中true } setTimeout(() => { if(!this.audioIsPlay) {
// 判断是否播放中 audios.playVoice() // 调用子组件中的播放方法 } else {
audios.pauseVoice() // 调用子组件中的暂停方法 } }, 100); }

4.到这里使用就成功了,波形图样式的话,目前有三种在组件中,需要那种就注释其它两种就行。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议
282***@qq.com

2024-11-11

在世小悟空

2024-09-12

不是是不支持安卓和ios啊?

zha***@outlook.com

2024-08-01

先不管能不能用,给差评确实有点过分,有报错不知道解决报错吗

898***@qq.com

2024-06-07

空白人吗

2024-02-29

报错,一堆报错

李老八 2024-03-30

大哥,本身就是免费的东西,你还给差评,报错,你自己有没有对应的依赖,是否和我一样的环境(vue2、小程序、uniapp)呢,自己不检查,就直接给差评,活该你技术不能提升

2024-07-15

大哥能不能把示例代码格式化下?