FMOD does not auto-switch to the default playback device

I’ve noticed that when I change the default playback device from the bottom right of my taskbar, FMOD still continues playback on the previous device. While going through some other posts I got to know that there is System::setDriver that can be used to switch audio devices, but since UE4 (and literally every other active application) switches the audio device automatically, I was hoping that this capability is present in FMOD too? I also noticed the same behavior in FMOD studio. The studio also does not auto switch to the default playback device. It needs to be changed manually from preferences.

Note: I am not plugging in a new device on the fly. The playback devices are already connected and I am only switching between them.

We added this feature in version 2.01.00, if you initialize FMOD using the default device, then change the default device at runtime (in Windows) FMOD will switch with it.

Thanks for replying. Good to know that this feature is being added. However, my game is currently on version 2.00.08 and is closing in on going gold. 2.01.00 is still in early access and migrating to it might not be the best decision.
Will it be possible for you to share the code for this fix? I can try to add in my current UE4 plugin source files which are running on 2.00.08. If something like that would work. It will be a big help.

The changes required are part of the FMOD source code, not the integration source, so I cannot share the them without a source license. The only workaround would be to implement your own detection of default device change using IMMNotificationClient.

When you detect the default has changed you would need to force FMOD to recache the device list by calling System::setOutput(FMOD_OUTPUTTYPE_NOSOUND) followed by System::setOutput(FMOD_OUTPUTTYPE_WASAPI), setting the device to index 0 will be the new default System::setDriver(0).