HTMLMediaElement: setSinkId() Methode
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Die setSinkId()
Methode des HTMLMediaElement
Interfaces setzt die ID des Audiogeräts, das für die Ausgabe verwendet werden soll, und gibt ein Promise
zurück.
Dies funktioniert nur, wenn der Anwendung die Verwendung des angegebenen Geräts erlaubt ist. Weitere Informationen finden Sie unten bei den Sicherheitsanforderungen.
Syntax
setSinkId(sinkId)
Parameter
sinkId
-
Die
MediaDeviceInfo.deviceId
des Audioausgabegeräts.
Rückgabewert
Ausnahmen
NotAllowedError
DOMException
-
Wird zurückgegeben, wenn eine
speaker-selection
Berechtigungsrichtlinie verwendet wird, um die Nutzung von Audioausgaben zu blockieren. NotFoundError
DOMException
-
Wird zurückgegeben, wenn die
deviceId
keinem Audioausgabegerät entspricht. AbortError
DOMException
-
Wird zurückgegeben, wenn das Umschalten des Audioausgabegeräts auf das neue Audiogerät fehlgeschlagen ist.
Sicherheitsanforderungen
Der Zugriff auf die API unterliegt den folgenden Einschränkungen:
- Die Methode muss in einem sicheren Kontext aufgerufen werden.
- Der Zugriff kann durch die
speaker-selection
HTTP Berechtigungsrichtlinie eingeschränkt werden. - Die Benutzererlaubnis ist erforderlich, um auf ein Nicht-Standardgerät zuzugreifen. Der Benutzer erteilt die Berechtigung, indem er das mit der ID verknüpfte Gerät im Dialog auswählt, der von
MediaDevices.selectAudioOutput()
angezeigt wird.
Beispiele
Dieses Beispiel zeigt, wie Sie ein Audioausgabegerät aus dem Array auswählen, das von MediaDevices.enumerateDevices()
zurückgegeben wird, und es als Ausgabe für Audio einstellen. Beachten Sie, dass das Ergebnis von enumerateDevices()
nur Geräte enthält, für die keine Benutzererlaubnis erforderlich ist oder bereits erteilt wurde.
const devices = await navigator.mediaDevices.enumerateDevices();
const audioDevice = devices.find((device) => device.kind === "audiooutput");
const audio = document.createElement("audio");
await audio.setSinkId(audioDevice.deviceId);
console.log(`Audio is being output on ${audio.sinkId}`);
Spezifikationen
Specification |
---|
Audio Output Devices API # dom-htmlmediaelement-setsinkid |
Browser-Kompatibilität
BCD tables only load in the browser