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 der AudioEncoder
Schnittstelle platziert eine Steuerungsnachricht, um den Audio-Encoder zur Codierung von Teilen zu konfigurieren.
Syntax
configure(config)
Parameter
config
-
Ein Wörterbuchobjekt, das die folgenden Mitglieder enthält:
codec
-
Ein String, der eine gültige Codec-Zeichenfolge enthält. Details zur Konstruktion der Codec-Zeichenfolge finden Sie im Abschnitt "codecs"-Parameter.
sampleRate
-
Eine ganze Zahl, die die Anzahl der Rahmproben pro Sekunde darstellt.
numberOfChannels
-
Eine ganze Zahl, die die Anzahl der Audiokanäle darstellt.
bitrate
Optional-
Eine ganze Zahl, die die Bitrate darstellt.
bitrateMode
Optional-
Ein enumerierter Wert, der den Bitratenmodus definiert, den der Encoder verwenden soll. Mögliche Werte sind:
"constant"
-
Zwingt einen Audio-Encoder dazu, dieselbe Bitrate beizubehalten, unabhängig vom Audioinhalt. Dies kann nützlich sein, wenn ein vorhersehbarer Bandbreitenverbrauch wünschenswert ist.
"variable"
(Standard)-
Ermöglicht einem Audio-Encoder, seine Bitrate je nach Inhalt des zu codierenden Audios zu erhöhen oder zu verringern, um Bandbreite/Größe zu sparen, während dennoch eine Zielqualität beibehalten wird. Beispielsweise könnte ein Encoder seine Bitrate beim Codieren von Stille senken und zur vollen Bitrate zurückkehren, wenn Sprache codiert wird.
Bestimmte Codec-Encoder-Implementierungen können leicht unterschiedliche Terminologie verwenden (zum Beispiel CBR vs VBR für Opus), aber sie sollten alle dem allgemeinen Konzept von "konstanter" gegen "variabler" Bitrate entsprechen.
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
(Standard)-
Verarbeitet das Signal getreu dem ursprünglichen Eingang.
lowdelay
-
Konfiguriert bei der Signalverarbeitung die minimal mögliche Codierungsverzögerung durch Deaktivieren bestimmter Betriebsmodi.
voip
-
Verarbeitet Signal zur Verbesserung der Sprachverständlichkeit.
complexity
Optional-
Eine Zahl, die die rechnerische Komplexität des Encoders basierend auf den in Abschnitt RFC6716, 2.1.5. — Complexity beschriebenen Aspekten definiert. Der gültige Bereich ist 0 bis 10, wobei 10 die höchste Komplexität darstellt. Wenn kein Wert angegeben wird, ist der Standardwert plattformspezifisch, wobei die Spezifikation 5 für mobile Plattformen und 9 für alle anderen Plattformen empfiehlt.
format
Optional-
Ein enumerierter Wert, der das Format angibt, in dem der Encoder
EncodedAudioChunk
s ausgeben soll. Mögliche Werte sind:opus
(Standard)-
Gibt
EncodedAudioChunk
s im Opus-Format aus. In diesem Fall sind keine Metadaten erforderlich, um den codierten Audiostream zu dekodieren. ogg
-
Gibt
EncodedAudioChunk
s im Ogg-Format aus. In diesem Fall sind keine Metadaten erforderlich, um den codierten Audiostream zu dekodieren. In diesem Fall werden die Metadaten des codierten Audiostreams in der Decoder-Konfiguration bereitgestellt — über diedescription
Eigenschaft des Konfigurationsobjekts, das inAudioDecoder.configure()
übergeben wird.
frameDuration
Optional-
Eine Zahl, die die Rahmendauer in Mikrosekunden von durch den Encoder ausgegebenen
EncodedAudioChunk
s definiert. Wenn nicht angegeben, liegt der Standardwert vonframeDuration
bei20000
. packetlossperc
Optional-
Eine Zahl, die den erwarteten Paketverlustprozentsatz des Encoders definiert. Der gültige Bereich ist 0 bis 100. Wenn nicht angegeben, ist der Standardwert von
packetlossperc
0
. signal
Optional-
Ein enumerierter Wert, der den Standardwert für den zu codierenden Audiosignaltyp angibt. Mögliche Werte sind:
auto
(Standard)-
Das Audiosignal ist nicht als bestimmter Typ spezifiziert.
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 reduziert. Wenn DTX aktiviert ist, wird nur alle 400 Millisekunden ein Rahmen codiert. Wenn nicht angegeben, ist der Standardwert von
usedtx
false
. useinbandfec
Optional-
Ein boolescher Wert, der angibt, ob der Encoder Opus-In-Band-Vorwärtsfehlerkorrektur (FEC) bereitstellt. Dies führt dazu, dass Pakete, von denen festgestellt wird, dass sie wahrnehmbar wichtige Sprachinformationen enthalten — wie Einsätze oder Transienten — mit einer niedrigeren Bitrate neu codiert und einem nachfolgenden Paket hinzugefügt werden. Wenn nicht angegeben, ist der Standardwert von
useinbandfec
false
.
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, der Benutzeragent jedoch keinen Codec bereitstellen kann, der dieses Profil dekodieren kann.
Beispiele
Einfaches 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);
Opus-spezifisches Konfigurationsbeispiel
Das folgende Beispiel erstellt einen neuen AudioEncoder
und konfiguriert ihn mit Opus-spezifischen 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 |
Browser-Kompatibilität
BCD tables only load in the browser