voicebot-react-native-expo
Version:
This is a voicebot-react-native package of Kipps AI voice bot for React Native Expo
29 lines (27 loc) • 751 B
text/typescript
import * as React from 'react';
import { useObservableState } from './internal';
import { createMediaDeviceObserver } from '@livekit/components-core';
/**
* The `useMediaDevices` hook returns the list of media devices of a given kind.
*
* @example
* ```tsx
* const videoDevices = useMediaDevices({ kind: 'videoinput' });
* const audioDevices = useMediaDevices({ kind: 'audioinput' });
* ```
* @public
*/
export function useMediaDevices({
kind,
onError,
}: {
kind: MediaDeviceKind;
onError?: (e: Error) => void;
}) {
const deviceObserver = React.useMemo(
() => createMediaDeviceObserver(kind, onError),
[kind, onError],
);
const devices = useObservableState(deviceObserver, [] as MediaDeviceInfo[]);
return devices;
}