From d627495550c5c0f72afef0727d7ab09303fbf0c7 Mon Sep 17 00:00:00 2001 From: fkwp Date: Tue, 12 May 2026 21:29:32 +0200 Subject: [PATCH] use webAudioMix in room options to activate the AudioContext routing pipeline on iOS 26 --- app/rooms/[roomName]/PageClientImpl.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/rooms/[roomName]/PageClientImpl.tsx b/app/rooms/[roomName]/PageClientImpl.tsx index 0d7c20d0..f37dee28 100644 --- a/app/rooms/[roomName]/PageClientImpl.tsx +++ b/app/rooms/[roomName]/PageClientImpl.tsx @@ -25,6 +25,7 @@ import { RoomEvent, TrackPublishDefaults, VideoCaptureOptions, + isSafariSpeakerSelectionSupported, } from 'livekit-client'; import { useRouter } from 'next/navigation'; import { useSetupE2EE } from '@/lib/useSetupE2EE'; @@ -136,6 +137,9 @@ function VideoConferenceComponent(props: { dynacast: true, e2ee: keyProvider && worker && e2eeEnabled ? { keyProvider, worker } : undefined, singlePeerConnection: props.options.singlePeerConnection, + // webAudioMix routes remote audio through AudioContext, which respects AudioContext.setSinkId() + // on iOS 26 where HTMLMediaElement.setSinkId() silently has no effect for WebRTC audio. + webAudioMix: isSafariSpeakerSelectionSupported(), }; }, [props.userChoices, props.options.hq, props.options.codec]);