javascript - 音频缓冲器的 FFT
问题描述
如何使用 WebAudioApi 对 AudioBuffer 进行 FFT?
AudioBuffer {length: 8575407, duration: 178.6543125, sampleRate: 48000, numberOfChannels: 2}
length: 8575407
duration: 178.6543125
sampleRate: 48000
numberOfChannels: 2
__proto__: AudioBuffer
可视化文档调用插入缓冲区的流
https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API/Visualizations_with_Web_Audio_API
source = audioCtx.createMediaStreamSource(stream);
source.connect(analyser);
更新
console.log(buffer);
source = audioCtx.createBufferSource(buffer);
source.connect(analyser);
analyser.connect(audioCtx.destination);
analyser.fftSize = 2048;
var bufferLength = analyser.frequencyBinCount;
var dataArray = new Uint8Array(bufferLength);
analyser.getByteTimeDomainData(dataArray);
console.log(analyser);
控制台
AnalyserNode {fftSize: 2048, frequencyBinCount: 1024, minDecibels: -100, maxDecibels: -30, smoothingTimeConstant: 0.8, …}
fftSize: 2048
frequencyBinCount: 1024
minDecibels: -100
maxDecibels: -30
smoothingTimeConstant: 0.8
context: AudioContext {baseLatency: 0.01, destination: AudioDestinationNode, currentTime: 8.04, sampleRate: 48000, listener: AudioListener, …}
numberOfInputs: 1
numberOfOutputs: 1
channelCount: 2
channelCountMode: "max"
channelInterpretation: "speakers"
__proto__: AnalyserNode
解决方案
推荐阅读
- android - Android 应用程序用户卸载详情
- php - 有没有办法在 WordPress 的 .twig 文件中编写 PHP 代码?我正在尝试使用 .twig 模板文件中的表单值发送邮件
- javascript - 将 Google Maps API 与 Firebase 结合使用
- javascript - Discord Bot公告频道
- python - 如何在 Dash 中将条形图旋转 180 度?
- python-2.7 - 打印变量时延迟出现未处理的错误
- php - Netsuite 项目履行无效的行项目
- java - 使用 newSingleThreadExecutor 消除 ExecutorService 中的竞争条件
- python - Python:具有多个元素的数组的真值是模棱两可的。使用 a.any() 或 a.all()
- node.js - 使用 Node.JS 使用 Apple 的 .p8 文件签署 JWT