HTMLMediaElement.setSinkId()

 

This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The HTMLMediaElement.setSinkId() method sets the ID of the audio device to use for output and returns a Promise. This only works when the application is authorized to use the specified device.

Syntax

HTMLMediaElement.setSinkId(sinkId).then(function() { ... })

Returns

A Promise that resolves to undefined.

Parameters

sinkId
The MediaDeviceInfo.deviceId of the audio output device.

Exceptions

This function can throw a DOMException (No permission to use requested device).

Example

const devices = await navigator.mediaDevices.enumerateDevices();
const audioDevices = devices.filter(device => device.kind === 'audiooutput');
const audio = document.createElement('audio');
await audio.setSinkId(audioDevices[0].deviceId);
console.log('Audio is being played on ' + audio.sinkId);

Specifications

Specification Status Comment
Audio Output Devices API
The definition of 'sinkId' in that specification.
Candidate Recommendation Initial definition. Older versions of this spec were called "Media Capture Output".

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung Internet
Basic supportChrome Full support 49Edge Full support 17Firefox ? IE ? Opera ? Safari ? WebView Android Full support 49Chrome Android Full support 49Edge Mobile Full support 17Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android ?

Legend

Full support  
Full support
Compatibility unknown  
Compatibility unknown

Document Tags and Contributors

Contributors to this page: fscholz, jpmedley, Jedipedia, rolfedh
Last updated by: fscholz,