From 0ec56014c393167b15c4704b431f7cfa5f8946c0 Mon Sep 17 00:00:00 2001 From: Robin Date: Mon, 28 Oct 2024 15:02:01 -0400 Subject: [PATCH] Remove duplicate media devices from the list Somehow on my system Firefox always manages to create multiple entries for my webcam. This was an easy enough thing to fix. --- src/livekit/MediaDevicesContext.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/livekit/MediaDevicesContext.tsx b/src/livekit/MediaDevicesContext.tsx index ebd34ca7..3d85b165 100644 --- a/src/livekit/MediaDevicesContext.tsx +++ b/src/livekit/MediaDevicesContext.tsx @@ -97,7 +97,11 @@ function useMediaDevice( } return { - available: available ?? [], + available: available + ? // Sometimes browsers (particularly Firefox) can return multiple + // device entries for the exact same device ID; deduplicate them + [...new Map(available.map((d) => [d.deviceId, d])).values()] + : [], selectedId: alwaysDefault ? undefined : devId, select, };