2.3.0 • Published 2 years ago

@wings-j/web-audio-wave v2.3.0

Weekly downloads
-
License
GPL-3.0-or-later
Repository
github
Last release
2 years ago

Web 音频波形,频域可视化。

基于 Canvas。

安装

npm install @wings-j/web-audio-wave

使用

ESM

import WebAudioWave from '@wings-j/web-audio-wave'

let audio = document.querySelector('audio')
let webAudioWave = new WebAudioWave(
  'bar',
  audio,
  {
    rate: 60,
    size: 512,
    width: 1200,
    height: 800
  },
  {
    color: 'skyblue',
    gap: 1
  }
)

document.body.append(webAudioWave.canvas)

IIFE

<script src="@wings-j/web-audio-wave/dist/index.iife.js"></script>
let audio = document.querySelector('audio')
let webAudioWave = new WebAudioWave.default(
  'bar',
  audio,
  {
    rate: 60,
    size: 512,
    width: 1200,
    height: 800
  },
  {
    color: 'skyblue',
    gap: 1
  }
)

document.body.append(webAudioWave.canvas)

API

WebAudioWave(type: string, audio: HTMLAudioElement, option?: Option)
  • type:类型
  • audio:音频元素
  • option:通用选项

播放

WebAudioWave.prototype.play()

停止

WebAudioWave.prototype.stop()

配置类型

WebAudioWave.prototype.config(option: GraphOption)

option:可视化配置

配置

类型

  • bar:柱形
  • curve:曲线
  • circle:圆圈
  • ripple:波纹

通用配置(Option)

名称说明类型默认值
widthSVG 宽度number1024
heightSVG 高度number1024
rate帧率number60
time时域booleanfalse
sizeFFT 长度number512
slice剪切number, number0, 512
pow对 FFT 的值做幂运算的幂number1
gain增益number1
db分贝booleanfalse
effect.trace轨迹。0,1number1
filter.type过滤器类型string''
filter.frequency过滤器频率number0
filter.q过滤器 Q 值number0
filter.gain过滤器增益number1

可选的滤波器类型:BiquadFilterNode

类型配置(VisualizeOption)

颜色选项用 6 位 HEX 表示,并且有优先级,从高到低:

  1. dynamicColor
  2. gradientColor
  3. color

参数ease表示缓动函数,可选值有:

  • linear
  • sineIn
  • sineOut
  • sineInOut
  • quadIn
  • quadOut
  • quatInOut
  • cubicIn
  • cubicOut
  • cubitInOut
  • quartIn
  • quartOut
  • quartInOut
  • quintIn
  • quintOut
  • quintInOut
  • expoIn
  • expoOut
  • expoInOut
  • circIn
  • circOut
  • circInOut
  • backIn
  • backOut
  • backInOut
  • elasticIn
  • elasticOut
  • elasticInOut
  • bounceIn
  • bounceOut
  • bounceInOut

bar

名称说明类型默认值
color颜色string"#000000"
gradientColor渐变颜色string[] | nullnull
dynamicColor动态颜色string, string | nullnull
gap柱形间距number0

curve

名称说明类型默认值
color颜色string"#000000"
gradientColor渐变颜色string[] | nullnull
dynamicColor动态颜色string, string | nullnull
width线宽number1
mirror镜像booleanfalse
reverse反转booleanfalse
backforth来回booleanfalse
smooth平滑booleanfalse

circle

名称说明类型默认值
color颜色string"#000000"
gradientColor渐变颜色string[] | nullnull
dynamicColor动态颜色string, string | nullnull
width线宽number1
fill填充booleanfalse
average平均值booleanfalse

ripple

名称说明类型默认值
color颜色string"#000000"
dynamicColor动态颜色string, string | nullnull
width线宽number1
fill填充booleanfalse
threshold阈值number0
period动画帧数number60
interval最小间隔帧数number60
minRadius最小半径number0
maxRadius最大半径。默认为全局设置宽高的一半number0
ease缓动函数((v: number) => number) | stringundefined

round

名称说明类型默认值
color颜色string"#000000"
gradientColor渐变颜色string[] | nullnull
dynamicColor动态颜色string, string | nullnull
width线宽number1
mirror镜像booleanfalse
period动画帧数number600
base基础半径number256
amplitude幅度半径number256
smooth平滑booleanfalse
clockwise顺时针渲染booleantrue
rotate旋转number0

rotate可选值:

  • 0:无旋转
  • 1:顺时针旋转
  • -1:逆时针旋转