fn

useDevicesList

v0.0.14testeddemo

Reactive 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

ParameterTypeDescription
options?UseDevicesListOptionsOptions

Returns

UseDevicesListReturndevices, kind-filtered lists, isSupported, permissionGranted and ensurePermissions
PropertyTypeDescription
isSupportedReadonly<Ref<boolean>>Whether navigator.mediaDevices.enumerateDevices is available
devicesShallowRef<MediaDeviceInfo[]>All enumerated media devices
videoInputsComputedRef<MediaDeviceInfo[]>Devices of kind videoinput
audioInputsComputedRef<MediaDeviceInfo[]>Devices of kind audioinput
audioOutputsComputedRef<MediaDeviceInfo[]>Devices of kind audiooutput
permissionGrantedShallowRef<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.