fn
useDevicesList
v0.0.14testeddemoReactive enumerateDevices listing available media input/output devices.
Examples
ts
const { videoInputs, audioInputs, audioOutputs } = useDevicesList({ requestPermissions: true });ts
const { devices, ensurePermissions, permissionGranted } = useDevicesList();
await ensurePermissions();Demo
Loading demo…
Signature
ts
export function useDevicesList(options: UseDevicesListOptions ={ ... }Parameters
| Parameter | Type | Description |
|---|---|---|
options? | UseDevicesListOptions | Options |
Returns
UseDevicesListReturndevices, kind-filtered lists, isSupported, permissionGranted and ensurePermissions| Property | Type | Description |
|---|---|---|
isSupported | Readonly<Ref<boolean>> | Whether navigator.mediaDevices.enumerateDevices is available |
devices | ShallowRef<MediaDeviceInfo[]> | All enumerated media devices |
videoInputs | ComputedRef<MediaDeviceInfo[]> | Devices of kind videoinput |
audioInputs | ComputedRef<MediaDeviceInfo[]> | Devices of kind audioinput |
audioOutputs | ComputedRef<MediaDeviceInfo[]> | Devices of kind audiooutput |
permissionGranted | ShallowRef<boolean> | Whether media permissions have been granted (labels/deviceIds are populated) |
ensurePermissions | () => Promise<boolean> | Request media permissions (via getUserMedia) so labels become available.
Resolves to whether permission is granted. Concurrent calls are deduped. |