AnalyserNode: minDecibels-Eigenschaft

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.

Die minDecibels-Eigenschaft der AnalyserNode-Schnittstelle ist ein doppelter Wert, der den minimalen Leistungswert im Skalierungsbereich für die FFT-Analysedaten darstellt, zur Umwandlung in vorzeichenlose Byte-Werte – im Wesentlichen legt dies den Minimalwert für den Bereich der Ergebnisse bei Verwendung von getByteFrequencyData() fest.

Wert

Ein doppelter Wert, der den minimalen Dezibel-Wert für die Skalierung der FFT-Analysedaten darstellt, wobei 0 dB das lauteste mögliche Geräusch ist, -10 dB ein Zehntel davon ist usw. Der Standardwert ist -100 dB.

Wenn Daten von getByteFrequencyData() abgerufen werden, werden alle Frequenzen mit einer Amplitude von minDecibels oder geringer als 0 zurückgegeben.

Hinweis: Wenn ein Wert größer als AnalyserNode.maxDecibels gesetzt wird, wird eine INDEX_SIZE_ERR-Ausnahme ausgelöst.

Beispiele

Das folgende Beispiel zeigt die grundlegende Verwendung eines AudioContext, um ein AnalyserNode zu erstellen, dann requestAnimationFrame und <canvas>, um häufig Frequenzdaten zu sammeln und eine "Winamp-Balkendiagramm-Stil"-Ausgabe des aktuellen Audioeingangs zu zeichnen. Für vollständigere angewandte Beispiele/Informationen sehen Sie sich unser Voice-change-O-matic-Demonstrationsbeispiel an (sehen Sie sich app.js Zeilen 108–193 für relevanten Code an).

js
const audioCtx = new AudioContext();
const analyser = audioCtx.createAnalyser();
analyser.minDecibels = -90;
analyser.maxDecibels = -10;

// …

analyser.fftSize = 256;
const bufferLength = analyser.frequencyBinCount;
console.log(bufferLength);
const dataArray = new Uint8Array(bufferLength);

canvasCtx.clearRect(0, 0, WIDTH, HEIGHT);

function draw() {
  drawVisual = requestAnimationFrame(draw);

  analyser.getByteFrequencyData(dataArray);

  canvasCtx.fillStyle = "rgb(0 0 0)";
  canvasCtx.fillRect(0, 0, WIDTH, HEIGHT);

  const barWidth = (WIDTH / bufferLength) * 2.5;
  let barHeight;
  let x = 0;

  for (let i = 0; i < bufferLength; i++) {
    barHeight = dataArray[i];

    canvasCtx.fillStyle = `rgb(${barHeight + 100} 50 50)`;
    canvasCtx.fillRect(x, HEIGHT - barHeight / 2, barWidth, barHeight / 2);

    x += barWidth + 1;
  }
}

draw();

Spezifikationen

Specification
Web Audio API
# dom-analysernode-mindecibels

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
minDecibels

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch