UNPKG

@jellyfish-dev/browser-media-utils

Version:

Facilitates the use of getUserMedia and enumerateDevices.

27 lines (26 loc) 1.38 kB
/* * enumerateDevices (permissions not granted) * chrome: {deviceId: '', kind: 'videoinput', label: '', groupId: 'something'} * firefox: {deviceId: 'something', kind: 'videoinput', label: '', groupId: 'something'} * safari: {deviceId: '', kind: 'videoinput', label: '', groupId: ''} * safari IOS: {deviceId: '', kind: 'videoinput', label: '', groupId: ''} * chrome IOS: {deviceId: '', kind: 'videoinput', label: '', groupId: ''} */ export const isGranted = (mediaDeviceInfo) => mediaDeviceInfo.label !== "" && mediaDeviceInfo.deviceId !== ""; export const isNotGranted = (mediaDeviceInfo) => mediaDeviceInfo.label === "" || mediaDeviceInfo.deviceId === ""; export const isVideo = (it) => it.kind === "videoinput"; export const isAudio = (it) => it.kind === "audioinput"; export const toMediaTrackConstraints = (constraint) => { if (typeof constraint === "boolean") { return constraint ? {} : undefined; } return constraint; }; export const prepareReturn = (isInterested, mediaDeviceInfo, permissionError) => { if (!isInterested) return { type: "Not requested" }; if (permissionError) return { type: "Error", name: permissionError }; return { type: "OK", devices: mediaDeviceInfo.filter(isGranted) }; }; export const NOOP = () => { };