packages/core/useDevicesList/index.md
Reactive enumerateDevices listing available input/output devices.
import { useDevicesList } from '@vueuse/core'
const {
devices,
videoInputs: cameras,
audioInputs: microphones,
audioOutputs: speakers,
} = useDevicesList()
To request permissions, use the ensurePermissions method.
import { useDevicesList } from '@vueuse/core'
// ---cut---
const {
ensurePermissions,
permissionGranted,
} = useDevicesList()
await ensurePermissions()
console.log(permissionsGranted.value)
<template>
<UseDevicesList v-slot="{ videoInputs, audioInputs, audioOutputs }">
Cameras: {{ videoInputs }}
Microphones: {{ audioInputs }}
Speakers: {{ audioOutputs }}
</UseDevicesList>
</template>