Hey all, I’m posting this to share an ongoing iOS audio issue with FMOD in Unity that’s still unresolved even after upgrading to the latest FMOD version (as of writing).
The Core Issue
On iOS, audio completely stops working after:
- the app is minimized/backgrounded,
- returning from an ad (especially rewarded/interstitial ads),
- or any interruption like phone calls or multitasking.
Once the app regains focus, FMOD doesn’t resume audio, and nothing plays from that point onward — even though no errors are thrown and everything appears normal in Unity.
What I Tried
I originally encountered this issue using FMOD 2.02.05, and after seeing some related bugfixes in changelogs, I upgraded to 2.02.28. Unfortunately, the issue still persists in the new version.
Here’s what I implemented to try and fix it:
- Manually suspending the FMOD mixer on app background/ad start with
RuntimeManager.CoreSystem.mixerSuspend()
- Resuming it later with
RuntimeManager.CoreSystem.mixerResume()
after a small delay - Tracking mixer state with a
bool isMixerSuspended
flag to prevent double-calling (which can crash on iOS) - Delaying resume logic using a coroutine to give iOS time to recover
private bool isMixerSuspended = false;
private void HandleAppLostFocus()
{
if (!isMixerSuspended)
{
RuntimeManager.CoreSystem.mixerSuspend();
RuntimeManager.CoreSystem.update();
isMixerSuspended = true;
}
}
private void HandleAppGainedFocus()
{
CoroutineRunner.Instance.WaitForRealTimeDelayAndExecute(() =>
{
if (isMixerSuspended)
{
RuntimeManager.CoreSystem.mixerResume();
RuntimeManager.CoreSystem.update();
isMixerSuspended = false;
}
}, 0.2f);
}
However — even with this system in place, FMOD still fails to resume audio after ads or app minimization on iOS. No crashes, but no sound either.
PS:The sound resumes after 10-15 secs