Change audio output device for VideoPlayer

I have an application that we use as an inhouse tool. One of the features is to load videos from the disk and displaying them at a certain position on screen.
Now one of my colleagues came to me with a feature request. They need to specify the device that is used for audio output (only videos have audio, I don’t load audio-only files).
Unity apparently cannot do this, and while Windows does allow me to specify the audio device on an per-application basis, I cannot run the same application multiple times, using a different audio device for each (as soon as I change one in Windows, all instances use that device).
Is there a way to do this using FMOD? I have found the SetDriver(int) function, but this doesn’t seem to have an influence on the VideoPlayer, and I can’t use a FMOD audio source as the output of a VideoPlayer, at least not directly.
I have found this, but that seems overkill for something that should be simple. Ideally I would just have a solution that sends all audio to a specified device, regardless of the source.


FMOD cannot change the audio output device for a Unity VideoPlayer - FMOD and Unity’s audio system are two completely separate systems.

If you want to use FMOD to accomplish the behavior you’re describing, the best way to handle it is to take the audio data from the VideoPlayer and play it via the FMOD System, which is exactly what the “Video Playback” example you’ve linked does. The example may seem like overkill, but the code is what is fundamentally required in order to take the audio output from one system and pass it to another to play back in realtime while compensating for any drift between the two unsynced systems.

If you have any further questions, feel free to let me know.