fix(camera): always try cam facing environment

This commit is contained in:
0ry5 2024-09-13 22:24:04 +02:00
parent afdc95d5c6
commit 46198913b1

View file

@ -103,15 +103,25 @@ export const useScanner = ({
}; };
const getCameraId = useCallback(async () => { const getCameraId = useCallback(async () => {
await navigator.mediaDevices.getUserMedia({ const stream = await navigator.mediaDevices.getUserMedia({
video: true, video: { facingMode: "environment" },
}); });
if (
stream &&
stream.getVideoTracks().length &&
stream.getVideoTracks()[0].getSettings().deviceId
) {
return stream.getVideoTracks()[0].getSettings().deviceId;
}
const devices = await navigator.mediaDevices const devices = await navigator.mediaDevices
.enumerateDevices() .enumerateDevices()
.then((ds) => ds.filter((d) => d.kind === "videoinput")); .then((ds) => ds.filter((d) => d.kind === "videoinput"));
const back = devices.filter((d) => d.label === "Back Camera")[0]; const back = devices.filter((d) =>
d.label.toLowerCase().includes("back")
)[0];
return !back ? devices[0].deviceId : back.deviceId; return !back ? devices[0].deviceId : back.deviceId;
}, []); }, []);