AudioEncoder: configure() Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist in Dedicated Web Workers verfügbar.
Die configure()
Methode des AudioEncoder
-Interfaces reiht eine Steuerungsnachricht ein, um den Audio-Encoder zum Kodieren von Chunks zu konfigurieren.
Syntax
configure(config)
Parameter
config
-
Ein Dictionary-Objekt, das die folgenden Mitglieder enthält:
codec
-
Ein String, der einen gültigen Codec-String enthält. Weitere Informationen zur Konstruktion des Codec-Strings finden Sie im "codecs" Parameter.
sampleRate
-
Ein Integer, der die Anzahl der Framesamples pro Sekunde darstellt.
numberOfChannels
-
Ein Integer, der die Anzahl der Audiokanäle darstellt.
bitrate
Optional-
Ein Integer, der die Bitrate darstellt.
bitrateMode
Optional-
Ein enumerierter Wert, der den Bitratenmodus definiert, den der Encoder verwenden soll. Mögliche Werte sind:
"constant"
-
Erzwingt, dass ein Audio-Encoder die gleiche Bitrate beibehält, unabhängig vom Audiogehalt. Dies kann nützlich sein, wenn ein vorhersehbarer Bandbreitenverbrauch erwünscht ist.
"variable"
(Voreinstellung)-
Erlaubt einem Audio-Encoder, seine Bitrate entsprechend dem Inhalt des zu kodierenden Audios zu erhöhen oder zu senken, um Bandbreite/Datenmenge zu sparen, während dennoch eine Zielqualität beibehalten wird. Beispielsweise könnte ein Encoder seine Bitrate senken, wenn er Stille kodiert, und auf eine volle Bitrate zurückgreifen, wenn er Sprache kodiert.
Spezifische Codec-Encoder-Implementierungen können leicht unterschiedliche Begriffe verwenden (zum Beispiel, CBR vs VBR für Opus), sollten aber alle auf das allgemeine Konzept einer "konstanten" gegenüber einer "variablen" Bitrate abbilden.
opus
Optional-
Gibt Codec-Konfigurationsoptionen an, die spezifisch für den Opus-Codec sind. Sein Wert ist ein
OpusEncoderConfig
-Objekt, dessen mögliche Eigenschaften wie folgt sind:application
Optional-
Ein enumerierter Wert, der den beabsichtigten Anwendungstyp des Encoders spezifiziert. Mögliche Werte sind:
audio
(Voreinstellung)-
Verarbeitet das Signal getreu dem ursprünglichen Eingang.
lowdelay
-
Bei der Signalverarbeitung, minimale mögliche Kodierungsverzögerung konfigurieren, indem bestimmte Betriebsmodi deaktiviert werden.
voip
-
Verarbeitet Signale zur Verbesserung der Sprachverständlichkeit.
complexity
Optional-
Eine Zahl, die die rechnerische Komplexität des Encoders definiert, basierend auf den in Abschnitt RFC6716, 2.1.5. — Complexity beschriebenen Aspekten. Der zulässige Bereich ist 0 bis 10, wobei 10 die höchste Komplexität darstellt. Wenn kein Wert angegeben ist, ist der Standardwert plattformabhängig; die Spezifikation empfiehlt 5 für mobile Plattformen und 9 für alle anderen Plattformen.
format
Optional-
Ein enumerierter Wert, der das Format angibt, in dem der Encoder
EncodedAudioChunk
s ausgeben soll. Mögliche Werte sind:opus
(Voreinstellung)-
Gibt
EncodedAudioChunk
s im Opus-Format aus. In diesem Fall sind keine Metadaten erforderlich, um den kodierten Audio-Stream zu dekodieren. ogg
-
Gibt
EncodedAudioChunk
s im Ogg-Format aus. In diesem Fall sind keine Metadaten erforderlich, um den kodierten Audio-Stream zu dekodieren. In diesem Fall werden die Metadaten des kodierten Audio-Streams in der Decoder-Konfiguration bereitgestellt — über diedescription
-Eigenschaft des Konfigurationsobjekts, das inAudioDecoder.configure()
übergeben wird.
frameDuration
Optional-
Eine Zahl, die die Frame-Dauer in Mikrosekunden von
EncodedAudioChunk
s definiert, die der Encoder ausgibt. Wenn nicht angegeben, ist dieframeDuration
standardmäßig20000
. packetlossperc
Optional-
Eine Zahl, die den erwarteten Paketverlustprozentsatz des Encoders definiert. Der zulässige Bereich ist 0 bis 100. Wenn nicht angegeben, ist
packetlossperc
standardmäßig0
. signal
Optional-
Ein enumerierter Wert, der den Standardwert für die Art des zu kodierenden Audiosignals angibt. Mögliche Werte sind:
auto
(Voreinstellung)-
Das Audiosignal ist nicht spezifiziert, von einem bestimmten Typ zu sein.
music
-
Das Audiosignal ist Musik.
voice
-
Das Audiosignal ist Stimme oder Sprache.
usedtx
Optional-
Ein boolescher Wert, der angibt, ob der Encoder Diskontinuierliche Übertragung (DTX) verwendet, die die Bitrate während Stille oder Hintergrundgeräuschen verringert. Wenn DTX aktiviert ist, wird nur ein Frame alle 400 Millisekunden kodiert. Wenn nicht angegeben, ist
usedtx
standardmäßigfalse
. useinbandfec
Optional-
Ein boolescher Wert, der angibt, ob der Encoder Opus in-band Forward Error Correction (FEC) bereitstellt. Dies führt dazu, dass Pakete, die als enthalten bedeutende Sprachinformation bestimmt werden — wie Anfänge oder Transienten — mit einer niedrigeren Bitrate erneut kodiert und einem nachfolgenden Paket hinzugefügt werden. Wenn nicht angegeben, ist
useinbandfec
standardmäßigfalse
.
Rückgabewert
Keiner (undefined
).
Ausnahmen
TypeError
-
Wird ausgelöst, wenn das bereitgestellte
config
ungültig ist. InvalidStateError
DOMException
-
Wird ausgelöst, wenn der
state
"closed"
ist. NotSupportedError
DOMException
-
Wird ausgelöst, wenn das bereitgestellte
config
gültig ist, aber der Benutzeragent keinen Codec bereitstellen kann, der dieses Profil dekodieren kann.
Beispiele
Grundlegendes Konfigurationsbeispiel
Das folgende Beispiel erstellt einen neuen AudioEncoder
und konfiguriert ihn mit einigen der verfügbaren Optionen.
const init = {
output: handleOutput,
error(e) {
console.log(e.message);
},
};
let config = {
codec: "mp3",
sampleRate: 44100,
numberOfChannels: 2,
bitrate: 128_000, // 128 kbps
bitrateMode: "constant",
};
let encoder = new AudioEncoder(init);
encoder.configure(config);
Beispiel für eine Opus-spezifische Konfiguration
Das folgende Beispiel erstellt einen neuen AudioEncoder
und konfiguriert ihn mit opusspezifischen Optionen.
const init = {
output: handleOutput,
error(e) {
console.log(e.message);
},
};
let opusConfig = {
application: "voip",
complexity: 9,
signal: "voice",
usedtx: true,
};
let config = {
codec: "opus",
sampleRate: 44100,
numberOfChannels: 2,
bitrate: 128_000,
opus: opusConfig,
};
let encoder = new AudioEncoder(init);
encoder.configure(config);
Spezifikationen
Specification |
---|
WebCodecs # dom-audioencoder-configure |