UNPKG

@thumbmarkjs/thumbmarkjs

Version:

![GitHub package.json dynamic](https://img.shields.io/github/package-json/version/ilkkapeltola/thumbmarkjs) ![NPM Version](https://img.shields.io/npm/v/@thumbmarkjs/thumbmarkjs) ![NPM Downloads](https://img.shields.io/npm/dm/%40thumbmarkjs%2Fthumbmarkjs

27 lines (22 loc) 723 B
import { componentInterface } from '../../factory'; export default async function getMediaDevices(): Promise<componentInterface | null> { if (typeof navigator === 'undefined' || !navigator.mediaDevices || typeof navigator.mediaDevices.enumerateDevices !== 'function') { return null; } try { const devices = await navigator.mediaDevices.enumerateDevices(); const counts: Record<string, number> = {}; for (const device of devices) { counts[device.kind] = (counts[device.kind] || 0) + 1; } return { audioinput: counts['audioinput'] || 0, audiooutput: counts['audiooutput'] || 0, videoinput: counts['videoinput'] || 0, }; } catch { return null; } }