Appearance
useDisplayMedia
Reactive mediaDevices.getDisplayMedia streaming
Demo
Usage
tsx
import { useDisplayMedia } from '@reause/core'
const { stream, start } = useDisplayMedia()
start()
const videoRef = useRef<HTMLVideoElement>(null)
useEffect(() => {
// preview on a video element
videoRef.current.srcObject = stream ?? null
}, [stream])Type Declarations
ts
export interface UseDisplayMediaOptions extends ConfigurableNavigator {
enabled?: boolean;
video?: boolean | MediaTrackConstraints | undefined;
audio?: boolean | MediaTrackConstraints | undefined;
}
export interface UseDisplayMediaReturn {
isSupported: boolean;
stream: MediaStream | undefined;
start: () => Promise<MediaStream | undefined>;
stop: () => void;
enabled: boolean;
setEnabled: Dispatch<SetStateAction<boolean>>;
}
export interface ConfigurableNavigator {
navigator?: Navigator;
}
export interface UseUserMediaOptions extends ConfigurableNavigator {
enabled?: boolean;
autoSwitch?: boolean;
constraints?: MediaStreamConstraints;
}
export function useDisplayMedia(options?: UseDisplayMediaOptions): UseDisplayMediaReturn