📅  最后修改于: 2023-12-03 15:18:11.975000             🧑  作者: Mango
processPeak()
是p5.js音频库中一个内置函数,用于处理音频信号中的峰值。可以用该函数获取到音频信号的最高值和最低值。
processPeak(buffer, length [, prependZeroes] [, rmsNormalize])
buffer
: 一个AudioBuffer对象,缓冲区长度必须是length
的整数倍。length
: 希望获取的峰值信息的采样数。prependZeroes
: 可选参数,将缓冲区的前prependZeroes
个样本添加到分析之前。默认值是0。rmsNormalize
: 可选参数,如果设置成true
,分析将被RMS归一化。默认值是false
。processPeak()
返回一个由以下组成的对象:
min
: 缓冲区内最大值的绝对值。minIndex
: 缓冲区内最大值的索引。rms
: 缓冲区内所有样本的平方根值的平均值。avg
: 缓冲区内所有样本的平均值。let audio, analyzer;
function preload() {
soundFormats('mp3', 'ogg');
audio = loadSound('assets/sound.mp3');
}
function setup() {
createCanvas(400, 400);
analyzer = new p5.Amplitude();
analyzer.setInput(audio);
audio.play();
}
function draw() {
background(220);
let level = analyzer.getLevel(); // 分析音频峰值
let peak = p5.prototype.processPeak(analyzer.input.buffer, analyzer.input.buffer.length); // 获取缓冲区的峰值
console.log(peak); // 输出峰值信息
fill(0, 255, 0);
rect(0, height - level * height, width, height);
}