> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # WebRTCMediaDevices > Subset of the MediaDevices interface actually used by the SDK. Subset of the `MediaDevices` interface actually used by the SDK. Implementations only need to provide these methods — the full browser `MediaDevices` type is intentionally not required so that React Native and other non-browser environments can conform without polyfilling unused APIs. ## **Methods** ### addEventListener() ```ts addEventListener(type, listener): void ``` #### Parameters **`type`** `string` — required Event type to listen for. --- **`listener`** `EventListenerOrEventListenerObject` — required Listener invoked when the event fires. --- #### Returns `void` --- ### enumerateDevices() ```ts enumerateDevices(): Promise ``` #### Returns `Promise` --- ### getDisplayMedia()? ```ts optional getDisplayMedia(options): Promise ``` #### Parameters **`options`** `DisplayMediaStreamOptions` — required Options to pass to `getDisplayMedia`. --- #### Returns `Promise` --- ### getUserMedia() ```ts getUserMedia(constraints): Promise ``` #### Parameters **`constraints`** `MediaStreamConstraints` — required Media-track constraints to pass to `getUserMedia`. --- #### Returns `Promise` --- ### removeEventListener() ```ts removeEventListener(type, listener): void ``` #### Parameters **`type`** `string` — required Event type to listen for. --- **`listener`** `EventListenerOrEventListenerObject` — required Listener invoked when the event fires. --- #### Returns `void` > Subset of the MediaDevices interface actually used by the SDK.