client-sdk-swift
client-sdk-swift copied to clipboard
Cannot play sound effects while connecting or disconnecting a call
Describe the bug Enabling or disabling the microphone on a LiveKit room affects the audio stack such that playing sound effects or background noise across these events is user-visibly broken.
SDK Version 2.0.12
iOS/macOS Version Tried on multiple iOS 17 versions, including most recent at time of writing: 17.5.1.
Xcode Version 15.4.0
Steps to Reproduce
- Download + open sample project
- Set a valid room and token under the
// Set your token herecomment - Run app (device or simulator – both repro)
- Tap "Play audio"
- Tap "Connect" Result: audio audibly glitches when the microphone connects
- Tap "Disconnect" Result: audio stops playing entirely
- Tap "Stop audio"
- Tap "Play audio" again Result: app crashes because the player has not seen an I/O cycle. This is because disconnecting has effectively stopped all audio – calling
pause()and thenplay()on the audio engine after disconnecting fixes this crash.
Expected behavior Background audio can play without distortion or stopping across enabling/disabling the microphone.
Though I'll take a workaround to at a minimum let me play sound effects without distortion.
Screenshots N/A. Sample project attached
Logs N/A. Sample project attached
Upon further testing the audio issues above occur when calling room.connect(...) and room.disconnect(), regardless of whether room.localParticipant.setMicrophone(enabled: true/false) is called, even when AudioManager.shared.customConfigureAudioSessionFunc is set to no-op.
@dfed we made some changes and improvements to this behavior in recent versions of the Swift SDK. Can you let me know if you still experience this problem?
@bcherry glad you're investing here! I tried pointing the sample project attached to the OP to both latest main (4a74cf4f5cccb045e265906aef5b7126693b4a2d) and the latest release 2.0.16: the project is still exhibiting the same behavior described in the OP – the form of the distortion may have changed the playback is still quite distorted.
Let me know if you have issues running the sample project – it clearly reproduces the issue when running on an iOS device. The distortion is relatively minor on simulator when I tested tonight, so maybe there were improvements within the simulator environment?
Hello, I have the same issues as @dfed . Is there a way to avoid Livekit managing the audio session at all? This would be very useful, as there are invisible weird behaviors I can't control :S :(