From 6911dbdc74b50fb733f1c3594410cc1609c46f75 Mon Sep 17 00:00:00 2001 From: Robin Date: Thu, 22 May 2025 10:28:40 -0400 Subject: [PATCH] Disable device switching when in controlled audio devices mode --- src/livekit/useLivekit.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/livekit/useLivekit.ts b/src/livekit/useLivekit.ts index 53f366d2..9e8f16a9 100644 --- a/src/livekit/useLivekit.ts +++ b/src/livekit/useLivekit.ts @@ -42,6 +42,7 @@ import { } from "./TrackProcessorContext"; import { useInitial } from "../useInitial"; import { observeTrackReference$ } from "../state/MediaViewModel"; +import { useUrlParams } from "../UrlParams"; interface UseLivekitResult { livekitRoom?: Room; @@ -54,6 +55,8 @@ export function useLivekit( sfuConfig: SFUConfig | undefined, e2eeSystem: EncryptionSystem, ): UseLivekitResult { + const { controlledAudioDevices } = useUrlParams(); + const e2eeOptions = useMemo((): E2EEManagerOptions | undefined => { if (e2eeSystem.kind === E2eeType.NONE) return undefined; @@ -303,7 +306,11 @@ export function useLivekit( useEffect(() => { // Sync the requested devices with LiveKit's devices - if (room !== undefined && connectionState === ConnectionState.Connected) { + if ( + room !== undefined && + connectionState === ConnectionState.Connected && + !controlledAudioDevices + ) { const syncDevice = ( kind: MediaDeviceKind, device: MediaDeviceHandle, @@ -363,7 +370,7 @@ export function useLivekit( syncDevice("audiooutput", devices.audioOutput); syncDevice("videoinput", devices.videoInput); } - }, [room, devices, connectionState]); + }, [room, devices, connectionState, controlledAudioDevices]); return { connState: connectionState,