📜  p5.js | processPeak()函数(1)

📅  最后修改于: 2023-12-03 15:18:11.975000             🧑  作者: Mango

p5.js | processPeak()函数

简介

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);
}
参考