Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. Web-APIs
  3. AnalyserNode

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

AnalyserNode

Baseline Widely available

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

DieAnalyserNode-Schnittstelle repräsentiert einen Knoten, der in der Lage ist, Echtzeit-Informationen zur Frequenz- und Zeitbereichsanalyse bereitzustellen. Sie ist einAudioNode, der den Audiostream unverändert vom Eingang zum Ausgang durchlaufen lässt, es Ihnen jedoch ermöglicht, die erzeugten Daten zu nutzen, zu verarbeiten und Audio-Visualisierungen zu erstellen.

EinAnalyserNode hat genau einen Eingang und einen Ausgang. Der Knoten funktioniert auch, wenn der Ausgang nicht verbunden ist.

Ohne den Audiostream zu modifizieren, ermöglicht der Knoten die Erfassung von Frequenz- und Zeitbereichsdaten, die damit in Verbindung stehen, unter Verwendung einer FFT.

EventTarget AudioNode AnalyserNode
Anzahl der Eingänge1
Anzahl der Ausgänge1 (kann jedoch nicht verbunden bleiben)
Channel-Count-Modus"max"
Channel-Anzahl2
Channel-Interpretation"speakers"

Konstruktor

AnalyserNode()

Erstellt eine neue Instanz einesAnalyserNode-Objekts.

Instanz-Eigenschaften

Erbt Eigenschaften von seinem Elternteil,AudioNode.

AnalyserNode.fftSize

Ein unsigned long-Wert, der die Größe der FFT (Fast Fourier Transform) darstellt, die verwendet wird, um den Frequenzbereich zu bestimmen.

AnalyserNode.frequencyBinCountSchreibgeschützt

Ein unsigned long-Wert, der die Hälfte der FFT-Größe beträgt. Dies entspricht im Allgemeinen der Anzahl der Datenwerte, die Sie für die Visualisierung verwenden können.

AnalyserNode.minDecibels

Ein double-Wert, der den minimalen Leistungswert im Skalierungsbereich für die FFT-Analysedaten darstellt, zur Umwandlung in unsigned Byte-Werte — im Grunde gibt dies den Mindestwert für den Bereich der Ergebnisse an, wenngetByteFrequencyData() verwendet wird.

AnalyserNode.maxDecibels

Ein double-Wert, der den maximalen Leistungswert im Skalierungsbereich für die FFT-Analysedaten darstellt, zur Umwandlung in unsigned Byte-Werte — im Grunde gibt dies den Maximalwert für den Bereich der Ergebnisse an, wenngetByteFrequencyData() verwendet wird.

AnalyserNode.smoothingTimeConstant

Ein double-Wert, der die Mittelungskonstante mit dem letzten Analyse-Frame darstellt — im Wesentlichen wird der Übergang zwischen Werten über die Zeit sanfter gestaltet.

Instanz-Methoden

Erbt Methoden von seinem Elternteil,AudioNode.

AnalyserNode.getFloatFrequencyData()

Kopiert die aktuellen Frequenzdaten in einFloat32Array-Array, das an die Methode übergeben wird.

AnalyserNode.getByteFrequencyData()

Kopiert die aktuellen Frequenzdaten in einUint8Array (Unsigned Byte-Array), das an die Methode übergeben wird.

AnalyserNode.getFloatTimeDomainData()

Kopiert die aktuelle Wellenform oder Zeitbereichsdaten in einFloat32Array-Array, das an die Methode übergeben wird.

AnalyserNode.getByteTimeDomainData()

Kopiert die aktuelle Wellenform oder Zeitbereichsdaten in einUint8Array (Unsigned Byte-Array), das an die Methode übergeben wird.

Beispiele

Hinweis:Siehe den LeitfadenVisualisierungen mit der Web Audio API für weitere Informationen zur Erstellung von Audiovisualisierungen.

Grundlegende Nutzung

Das folgende Beispiel zeigt die grundlegende Nutzung einesAudioContext, um einenAnalyserNode zu erstellen, gefolgt von einer Nutzung vonrequestAnimationFrame und einem<canvas>, um auf wiederholende Weise Zeitbereichsdaten zu sammeln und eine "Oszilloskop-ähnliche" Ausgabe des aktuellen Audioeingangs zu zeichnen.Für vollständigere angewandte Beispiele/Informationen besuchen Sie unserVoice-change-O-matic Demo (sieheapp.js Zeilen 108-193 für relevanten Code).

js
const audioCtx = new AudioContext();// …const analyser = audioCtx.createAnalyser();analyser.fftSize = 2048;const bufferLength = analyser.frequencyBinCount;const dataArray = new Uint8Array(bufferLength);analyser.getByteTimeDomainData(dataArray);// Connect the source to be analyzedsource.connect(analyser);// Get a canvas defined with ID "oscilloscope"const canvas = document.getElementById("oscilloscope");const canvasCtx = canvas.getContext("2d");// draw an oscilloscope of the current audio sourcefunction draw() {  requestAnimationFrame(draw);  analyser.getByteTimeDomainData(dataArray);  canvasCtx.fillStyle = "rgb(200 200 200)";  canvasCtx.fillRect(0, 0, canvas.width, canvas.height);  canvasCtx.lineWidth = 2;  canvasCtx.strokeStyle = "rgb(0 0 0)";  canvasCtx.beginPath();  const sliceWidth = (canvas.width * 1.0) / bufferLength;  let x = 0;  for (let i = 0; i < bufferLength; i++) {    const v = dataArray[i] / 128.0;    const y = (v * canvas.height) / 2;    if (i === 0) {      canvasCtx.moveTo(x, y);    } else {      canvasCtx.lineTo(x, y);    }    x += sliceWidth;  }  canvasCtx.lineTo(canvas.width, canvas.height / 2);  canvasCtx.stroke();}draw();

Spezifikationen

Specification
Web Audio API
# AnalyserNode

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2026 Movatter.jp