Hello! We encountered a problem with iOS AudioSession using FMOD.
You provide a guide on handling sessions, but I checked your iOS examples, and since version 2.02.23, they no longer follow that guide. The difference is that in newer versions, there are no mixerSuspend
/mixerResume
calls when the application moves to the background/foreground or when an audio session begins/ends an interruption.
I tested the simple_event example in different versions, and here are the results:
- Version 2.02.23 and later (including 2.03.05):
You can start sound by pressing B, then switch to the background (sound stops) and return to the foreground (sound continues playing) — which works fine. However, if you receive an incoming call or alarm and then dismiss it, the sound freezes. The application continues updating as usual (including the mixer), but no sound plays. Additionally, you cannot start any other sounds after that.
I uploaded the video 20305.mp4 to my profile for reference. iOS version was 17.6.1 - Version 2.02.22:
In this version,mixerSuspend
/mixerResume
calls are present. However, sometimes an “interruption began” event is triggered when the application returns to the foreground, causing amixerSuspend
call and making the sound freeze. Unlike newer versions, if you switch to the background and then return to the foreground, the sound resumes playing.
You can check video 20222.mp4 and the log file 20222log.rtf for details. iOS version was 13.5.1, it much more difficult to catch it on newer version but it’s possible.
So my question is: What is the proper way to handle iOS audio sessions, application suspensions, and activations?