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 der HTMLMediaElement
-Schnittstelle setzt die ID des Audiogeräts, das für die Wiedergabe verwendet werden soll, und gibt ein Promise
zurück.
Dies funktioniert nur, wenn die Anwendung berechtigt ist, das angegebene Gerät zu verwenden. Weitere Informationen finden Sie in den Sicherheitsanforderungen unten.
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 Beschränkungen:
- Die Methode muss in einem sicheren Kontext aufgerufen werden.
- Der Zugriff kann durch die
speaker-selection
HTTP Berechtigungsrichtlinie eingeschränkt sein. - Es ist die Erlaubnis des Benutzers erforderlich, um auf ein nicht standardmäßiges Gerät zuzugreifen.
Der Benutzer erteilt die Erlaubnis, indem er das Gerät auswählt, das mit der ID in der durch
MediaDevices.selectAudioOutput()
angezeigten Eingabeaufforderung verknüpft ist.
Beispiele
Dieses Beispiel zeigt, wie man ein Audioausgabegerät aus dem Array auswählt, das von MediaDevices.enumerateDevices()
zurückgegeben wird, und es als Audio-Senke festlegt. Beachten Sie, dass das Ergebnis von enumerateDevices()
nur Geräte enthält, für die keine Benutzerberechtigung erforderlich ist oder die 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 |