Our integration of FMOD into Unity has been pretty seamless, but we had noticed that any change to the operating system’s current audio output will not be reflected in FMOD audio if changed during runtime. This behaviour is different to native Unity audio, which will switch drivers as the OS audio output is changed. I am to understand this is intentional, as mentioned in this related post.
I can manually manage driver switching through the
FMOD.System.getDriver()/setDriver() methods. Additionally, Unity provides the
AudioSettings.OnAudioConfigurationChanged event that can be observed.
Using these methods and event, I could resolve this if I can determine which driver I should switch to. Is there a way to determine the current OS audio output/default Unity audio output? Or is there any simpler implementation to achieve this?
For context, it is advised that our VR game requires our audio to match the OS audio output to pass submission for the Oculus Store.