BaseAudioContext
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.
Das BaseAudioContext
-Interface der Web Audio API dient als Basisdefinition für Online- und Offline-Audioverarbeitungsgraphen, die durch AudioContext
und OfflineAudioContext
dargestellt werden. Sie würden BaseAudioContext
nicht direkt verwenden – Sie würden seine Funktionen über eines dieser beiden vererbenden Interfaces nutzen.
Ein BaseAudioContext
kann ein Ziel von Ereignissen sein und implementiert daher das EventTarget
-Interface.
Instanz-Eigenschaften
BaseAudioContext.audioWorklet
Nur lesbar Secure context-
Gibt das
AudioWorklet
-Objekt zurück, das verwendet werden kann, umAudioNode
s zu erstellen und zu verwalten, in denen JavaScript-Code, der dasAudioWorkletProcessor
-Interface implementiert, im Hintergrund ausgeführt wird, um Audiodaten zu verarbeiten. BaseAudioContext.currentTime
Nur lesbar-
Gibt eine Zahl zurück, die eine sich ständig erhöhende Hardware-Zeit in Sekunden darstellt, die für die Planung verwendet wird. Sie beginnt bei
0
. BaseAudioContext.destination
Nur lesbar-
Gibt einen
AudioDestinationNode
zurück, der das endgültige Ziel aller Audioinhalte im Kontext darstellt. Dies kann als das Audio-Wiedergabegerät angesehen werden. BaseAudioContext.listener
Nur lesbar-
Gibt das
AudioListener
-Objekt zurück, das für die 3D-Räumlichkeitswahrnehmung verwendet wird. BaseAudioContext.sampleRate
Nur lesbar-
Gibt eine Gleitkommazahl zurück, die die Abtastrate (in Samples pro Sekunde) angibt, die von allen Knoten in diesem Kontext verwendet wird. Die Abtastrate eines
AudioContext
kann nicht geändert werden. BaseAudioContext.state
Nur lesbar-
Gibt den aktuellen Zustand des
AudioContext
zurück.
Instanz-Methoden
Implementiert auch Methoden aus dem Interface EventTarget
.
BaseAudioContext.createAnalyser()
-
Erstellt einen
AnalyserNode
, der verwendet werden kann, um Audio-Zeit- und Frequenzdaten darzustellen und beispielsweise Datenvisualisierungen zu erstellen. BaseAudioContext.createBiquadFilter()
-
Erstellt einen
BiquadFilterNode
, der einen Filter zweiter Ordnung darstellt, der als verschiedene gängige Filtertypen konfiguriert werden kann: Hochpass, Tiefpass, Bandpass, etc. BaseAudioContext.createBuffer()
-
Erstellt ein neues, leeres
AudioBuffer
-Objekt, das dann mit Daten gefüllt und über einenAudioBufferSourceNode
abgespielt werden kann. BaseAudioContext.createBufferSource()
-
Erstellt einen
AudioBufferSourceNode
, der verwendet werden kann, um Audiodaten abzuspielen und zu bearbeiten, die in einemAudioBuffer
-Objekt enthalten sind.AudioBuffer
s werden mitAudioContext.createBuffer()
erstellt oder vonAudioContext.decodeAudioData()
zurückgegeben, wenn es eine Audiospur erfolgreich dekodiert. BaseAudioContext.createConstantSource()
-
Erstellt ein
ConstantSourceNode
-Objekt, eine Audioquelle, die kontinuierlich ein monaurales (einkanaliges) Audiosignal ausgibt, dessen Samples alle denselben Wert haben. BaseAudioContext.createChannelMerger()
-
Erstellt einen
ChannelMergerNode
, der verwendet wird, um Kanäle aus mehreren Audiostreams in einen einzigen Audiostream zu kombinieren. BaseAudioContext.createChannelSplitter()
-
Erstellt einen
ChannelSplitterNode
, der verwendet wird, um die einzelnen Kanäle eines Audiostreams zu bearbeiten. BaseAudioContext.createConvolver()
-
Erstellt einen
ConvolverNode
, der verwendet werden kann, um Faltungseffekte auf Ihren Audiographen anzuwenden, beispielsweise einen Hall-Effekt. BaseAudioContext.createDelay()
-
Erstellt einen
DelayNode
, der das eingehende Audiosignal um eine bestimmte Zeit verzögert. Dieser Knoten ist auch nützlich, um Feedback-Schleifen in einem Web Audio API-Graphen zu erstellen. BaseAudioContext.createDynamicsCompressor()
-
Erstellt einen
DynamicsCompressorNode
, der verwendet werden kann, um eine akustische Kompression auf ein Audiosignal anzuwenden. BaseAudioContext.createGain()
-
Erstellt einen
GainNode
, der verwendet werden kann, um die Gesamtlautstärke des Audiographen zu steuern. BaseAudioContext.createIIRFilter()
-
Erstellt einen
IIRFilterNode
, der einen Filter zweiter Ordnung darstellt, der als verschiedene gängige Filtertypen konfiguriert werden kann. BaseAudioContext.createOscillator()
-
Erstellt einen
OscillatorNode
, eine Quelle, die eine periodische Wellenform darstellt. Es erzeugt im Wesentlichen einen Ton. BaseAudioContext.createPanner()
-
Erstellt einen
PannerNode
, der verwendet wird, um einen eingehenden Audiostream in einem 3D-Raum zu räumlich darstellen. BaseAudioContext.createPeriodicWave()
-
Erstellt eine
PeriodicWave
, die verwendet wird, um eine periodische Wellenform zu definieren, die zur Bestimmung der Ausgabe einesOscillatorNode
verwendet werden kann. BaseAudioContext.createScriptProcessor()
Veraltet-
Erstellt einen
ScriptProcessorNode
, der für die direkte Audiobearbeitung über JavaScript verwendet werden kann. BaseAudioContext.createStereoPanner()
-
Erstellt einen
StereoPannerNode
, der verwendet werden kann, um ein Stereo-Panning auf eine Audioquelle anzuwenden. BaseAudioContext.createWaveShaper()
-
Erstellt einen
WaveShaperNode
, der verwendet wird, um nichtlineare Verzerrungseffekte zu implementieren. BaseAudioContext.decodeAudioData()
-
Dekodiert asynchron Audiodateidaten, die in einem
ArrayBuffer
enthalten sind. In diesem Fall wird dasArrayBuffer
normalerweise von einemXMLHttpRequest
'sresponse
-Attribut geladen, nachdem derresponseType
aufarraybuffer
gesetzt wurde. Diese Methode funktioniert nur mit vollständigen Dateien, nicht mit Fragmenten von Audiodateien.
Ereignisse
statechange
-
Wird ausgelöst, wenn sich der Zustand des
AudioContext
ändert, aufgrund des Aufrufs einer der Zustandsänderungsmethoden (AudioContext.suspend
,AudioContext.resume
oderAudioContext.close
).
Beispiele
const audioContext = new AudioContext();
const oscillatorNode = audioContext.createOscillator();
const gainNode = audioContext.createGain();
const finish = audioContext.destination;
Spezifikationen
Specification |
---|
Web Audio API # BaseAudioContext |
Browser-Kompatibilität
BCD tables only load in the browser