Description
When a user joins a call with loudspeaker output active and a second
participant joins and starts speaking, the remote audio is heard at very
low volume despite the output device being the loudspeaker (not earpiece).
Toggling mic mute → unmute immediately fixes the volume.
Note: the volume is not "dropping" — the user is alone before step 2 so
there is no baseline to compare against. The problem is that the audio
session is never correctly configured for remote audio playback on
loudspeaker until the mic toggle forces a re-evaluation.
Steps to Reproduce
- User A joins a call alone — loudspeaker output is active
- User B joins the call and begins speaking
- User A hears User B at very low volume (output device is loudspeaker, not earpiece)
- User A mutes their mic, then unmutes
- Remote audio volume is now correct for loudspeaker output
Expected Behavior
When a remote participant joins and speaks, their audio should be immediately
audible at the correct loudspeaker volume with no intervention required.
Actual Behavior
Remote audio is too quiet on loudspeaker. Muting and unmuting the mic
accidentally corrects this.
Hypothesis
When the call is initialized with no remote participants, the AVAudioSession
may be configured in a mode that doesn't fully assert loudspeaker output
gain for remote audio streams (e.g. missing .defaultToSpeaker option, or
an incorrect mode like AVAudioSessionModeDefault instead of
AVAudioSessionModeVideoChat). When the mic is toggled, the SDK
reconfigures the audio session and correctly sets up output routing and
gain for remote audio.
Environment
- Platform: iOS
- Device: iPhone 13, iPhone 15 Pro, iPhone 5
- iOS version: 26.5.2
- Flutter: 3.44.6
- stream_video_flutter: 1.4.1
Workaround
Mute then unmute microphone restores remote audio to the expected volume.
Description
When a user joins a call with loudspeaker output active and a second
participant joins and starts speaking, the remote audio is heard at very
low volume despite the output device being the loudspeaker (not earpiece).
Toggling mic mute → unmute immediately fixes the volume.
Note: the volume is not "dropping" — the user is alone before step 2 so
there is no baseline to compare against. The problem is that the audio
session is never correctly configured for remote audio playback on
loudspeaker until the mic toggle forces a re-evaluation.
Steps to Reproduce
Expected Behavior
When a remote participant joins and speaks, their audio should be immediately
audible at the correct loudspeaker volume with no intervention required.
Actual Behavior
Remote audio is too quiet on loudspeaker. Muting and unmuting the mic
accidentally corrects this.
Hypothesis
When the call is initialized with no remote participants, the AVAudioSession
may be configured in a mode that doesn't fully assert loudspeaker output
gain for remote audio streams (e.g. missing
.defaultToSpeakeroption, oran incorrect mode like
AVAudioSessionModeDefaultinstead ofAVAudioSessionModeVideoChat). When the mic is toggled, the SDKreconfigures the audio session and correctly sets up output routing and
gain for remote audio.
Environment
Workaround
Mute then unmute microphone restores remote audio to the expected volume.