AudioBufferSourceNode: start()-Methode
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 start()
-Methode des AudioBufferSourceNode
Interface wird verwendet, um die Wiedergabe der Audiodaten im Puffer zu planen oder
die Wiedergabe sofort zu beginnen.
Syntax
start(when)
start(when, offset)
start(when, offset, duration)
Parameter
when
Optional-
Die Zeit in Sekunden, zu der der Ton beginnen soll, im gleichen Zeitkoordinatensystem wie das
AudioContext
. Wennwhen
kleiner ist als (AudioContext.currentTime
) oder wenn er 0 ist, beginnt der Ton sofort zu spielen. Der Standardwert ist 0. offset
Optional-
Ein Offset, in Sekunden angegeben, im gleichen Zeitkoordinatensystem wie das
AudioContext
, zur Zeit innerhalb des Audiopuffers, bei der die Wiedergabe beginnen soll. Um beispielsweise die Wiedergabe in der Mitte eines 10-Sekunden-Audioclips zu starten, sollteoffset
5 sein. Der Standardwert 0 startet die Wiedergabe am Anfang des Audiopuffers, und Offsets, die über das Ende des abzuspielenden Audios hinausgehen (basierend auf derduration
des Audiopuffers und/oder derloopEnd
-Eigenschaft), werden stillschweigend auf den maximal zulässigen Wert begrenzt. Die Berechnung des Offsets im Klang erfolgt mit der natürlichen Abtastrate des Klangpuffers, anstatt mit der aktuellen Wiedergaberate, sodass, auch wenn der Klang doppelt so schnell abgespielt wird, der Mittelpunkt eines 10-Sekunden-Audiopuffers immer noch bei 5 liegt. duration
Optional-
Die Dauer des abzuspielenden Tons, in Sekunden angegeben. Wenn dieser Parameter nicht angegeben ist, spielt der Ton bis zum natürlichen Ende oder wird mit der
stop()
-Methode gestoppt. Die Verwendung dieses Parameters ist funktional identisch mit dem Aufruf vonstart(when, offset)
und anschließendem Aufruf vonstop(when+duration)
.
Rückgabewert
Keiner (undefined
).
Ausnahmen
TypeError
-
Wird ausgelöst, wenn ein negativer Wert für einen der drei Zeitparameter angegeben wurde. Bitte versuchen Sie nicht, die Gesetze der temporalen Physik zu manipulieren.
InvalidStateError
DOMException
-
Wird ausgelöst, wenn
start()
bereits aufgerufen wurde. Sie können diese Funktion nur einmal während der Lebensdauer einesAudioBufferSourceNode
aufrufen.
Beispiele
Das einfachste Beispiel startet einfach die Wiedergabe des Audiopuffers von Anfang an — in diesem Fall müssen keine Parameter angegeben werden:
source.start();
Das folgende, komplexere Beispiel beginnt in 1 Sekunde mit der Wiedergabe von 10 Sekunden Ton, wobei 3 Sekunden in den Audiopuffer hineingespielt werden.
source.start(audioCtx.currentTime + 1, 3, 10);
Hinweis:
Ein vollständigeres Beispiel zur Verwendung von start()
finden Sie in unserem Beispiel zu AudioContext.decodeAudioData()
. Sie können auch das Beispiel live ausprobieren und sich den Beispielquellcode ansehen.
Spezifikationen
Specification |
---|
Web Audio API # dom-audiobuffersourcenode-start |
Browser-Kompatibilität
BCD tables only load in the browser