Apologies for the delayed response over the new years break.
Changing the output device/driver itself is fairly straightforward - you can use System::setDriver to set the device FMOD is outputting to. System::getNumDrivers and System::getDriverInfo can be used in conjunction to enumerate available devices. With the FMOD for Unity plugin, the relevant call might look something like this:
FMOD.System coresystem;
FMODUnity.RuntimeManager.StudioSystem.getCoreSystem(out coresystem);
coresystem.setDriver(3);
As for changing platform builds with different speaker formats (i.e. headphones/2.0, 5.1, 7.1), that’s a little more involved. The easiest way to do it, assuming the source assets are the same across all platform builds, is to enable the “Build metadata and assets to separate banks” setting in FMOD Studio’s build preferences. Then, at runtime, you can keep all asset banks loaded, while unloading the currently loaded metadata banks and loading the new ones with the target speaker format. The simplest way to handle this is to use RuntimeManager.LoadBank() and RuntimeManage.UnloadBank(), and RuntimeManage.HasBankLoaded() can be used to query the loading state of a given bank.
Note, however, that unloading all metadata banks includes the master bank, and as a result all existing events will be stopped and release, so keeping track of the events that need to persist through the swap (ambience, music, etc.) is a good idea.
You can read more about how to handle changing audio configurations in the relevant section of the Studio docs: 16.16 Setting Up Different Audio Configurations for your Game