Placeholder-Software / Dissonance

Unity Voice Chat Asset
71 stars 5 forks source link

[help] How to change audio output device? #70

Closed haydenjameslee closed 6 years ago

haydenjameslee commented 6 years ago

Is it possible to change the audio output device that Dissonance audio emits from? I wish to allow users to change the audio output device at runtime to something other than their default Windows audio out device.

If its not possible, any ideas are welcome!

martindevans commented 6 years ago

Dissonance emits it's audio into the Unity audio system in the same as any other AudioSource component so you shouldn't have to do anything special. You should just be able to change the Unity output device and Dissonance will just worktm.

Unfortunately I just googled how to change the output device so that I could link the documentation... and it looks like Unity doesn't currently support changing the output device! I found this issue which says a fix is "in review" so hopefully that will be fixed soon.

Until that's fixed I'm not really sure what you can do as a workaround. You could try calling AudioSettings.Reset() after settings the output device in windows, that might force Unity to change it's output device, but that's a complete guess :/

haydenjameslee commented 6 years ago

T deal with similar issues in the past I've implemented FMOD into Unity since FMOD provides an API to choose audio output device.

How hard would it be to have the Dissonance output directed through FMOD?

martindevans commented 6 years ago

It would be a fair bit of work, but not impossible. Off the top of my head you'd need to replace:

Supporting FMOD/WWise is actually something we've had in mind for a while and it hasn't happened yet because it involves messing around with this somewhat ugly/overcoupled bit of the system. Parts of this are in the public API and any changes here are almost certainly going to result in a breaking change to some of the public Dissonance API. I will probably come back to this in a month or two to clean it all up and add official integrations for FMOD/WWise (if possible).

martindevans commented 6 years ago

A quick update on this. With Dissonance 6.0.0 we already had some breaking changes coming, so I went ahead and made the breaking changes required to support FMOD/WWise in the future. This doesn't really help you at the moment, but it's a major hurdle out of the way!

haydenjameslee commented 6 years ago

Awesome! Glad to hear it.

martindevans commented 6 years ago

The associated Unity issue for this problem has been marked as "Resolved" although it's not clear which version(s) the fix has been included in. I'll close this issue but please don't hesitate to re-open it if you think there's something more we can help with :)

GabeBigBoxVR commented 6 years ago

Is FMOD support on the road map still? Would love this in an upcoming release if possible.

martindevans commented 6 years ago

I'm afraid we don't have any concrete plans to implement support for third party audio playback systems (e.g. FMOD/WWise) at the moment. It's not something that's frequently requested and it would be very complex to get certain features (e.g. Acoustic Echo Cancellation) working correctly with multiple audio backends.

haydenjameslee commented 6 years ago

Btw, to solve our original problem of being able to change the audio output device we implemented this plugin and it works great: https://assetstore.unity.com/packages/tools/audio/audiostream-65411