Changing the output Audio Device

OK, after exploring this for a while, it appears that the function you’re trying to call does “something” but it clearly doesn’t do what it needs to do to switch the device. To make this work you simply need to call

AudioMixerPlatform->RequestDeviceSwap(DeviceID, 
    true, // force the change even if it is not allowed, can be false too,  your call
    TEXT("Because I asked") // Some reason given as plain text
);

Hopefully this helps someone down the line, this issue has sat unresolved for too long.

From what I’ve tested this works with the XAudio2 mixer endpoint on Windows, I’m going to try this on Linux later to validate the behavior there. If it doesn’t work I’ll edit this post with more instructions for that when it fails with AudioMixerSDL or whatever that runtime decides to use.