client-sdk-swift icon indicating copy to clipboard operation
client-sdk-swift copied to clipboard

Cannot play sound effects while connecting or disconnecting a call

Open dfed opened this issue 1 year ago • 3 comments

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

  1. Download + open sample project
  2. Set a valid room and token under the // Set your token here comment
  3. Run app (device or simulator – both repro)
  4. Tap "Play audio"
  5. Tap "Connect" Result: audio audibly glitches when the microphone connects
  6. Tap "Disconnect" Result: audio stops playing entirely
  7. Tap "Stop audio"
  8. 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 then play() 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

livekit-swift-example-collection-audio.zip

dfed avatar Jul 19 '24 22:07 dfed

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 avatar Jul 23 '24 18:07 dfed

@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 avatar Oct 16 '24 04:10 bcherry

@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?

dfed avatar Oct 16 '24 07:10 dfed

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 :(

jmugicagonz avatar Dec 16 '24 09:12 jmugicagonz