LiveKit docs › Components › MediaDeviceSelect

---

# MediaDeviceSelect

The `MediaDeviceSelect` list all media devices of one kind. Clicking on one of the listed devices make it the active media device.

## Import

```typescript
import { MediaDeviceSelect } from "@livekit/components-react";

```

## Usage

```tsx
<LiveKitRoom>
  <MediaDeviceSelect kind="audioinput" />
</LiveKitRoom>

```

## Properties

- **`kind`** _(MediaDeviceKind)_: 

- **`exactMatch`** _(boolean)_ (optional): _(Optional)_ will force the browser to only return the specified device will call `onDeviceSelectError` with the error in case this fails

- **`initialSelection`** _(string)_ (optional): _(Optional)_

- **`onActiveDeviceChange`** _((deviceId: string) => void)_ (optional): _(Optional)_

- **`onDeviceListChange`** _((devices: MediaDeviceInfo[]) => void)_ (optional): _(Optional)_

- **`onDeviceSelectError`** _((e: Error) => void)_ (optional): _(Optional)_

- **`onError`** _((e: Error) => void)_ (optional): _(Optional)_

- **`requestPermissions`** _(boolean)_ (optional): _(Optional)_ this will call getUserMedia if the permissions are not yet given to enumerate the devices with device labels. in some browsers multiple calls to getUserMedia result in multiple permission prompts. It's generally advised only flip this to true, once a (preview) track has been acquired successfully with the appropriate permissions.

- **`track`** _(LocalAudioTrack | LocalVideoTrack)_ (optional): _(Optional)_

---

This document was rendered at 2026-06-07T11:32:56.314Z.
For the latest version of this document, see [https://docs.livekit.io/reference/components/react/component/mediadeviceselect.md](https://docs.livekit.io/reference/components/react/component/mediadeviceselect.md).

To explore all LiveKit documentation, see [llms.txt](https://docs.livekit.io/llms.txt).