Currently I'm trying to hook Vivox voice chat into the Wwise AudioInputComponent. Everything is working for short periods of time, but the sound cuts out after a little while. I currently have it set up to call PostAssociatedAudioInputEvent in the BeginPlay function and this successfully causes FillSamplesBuffer to be called for a while, but after roughly 30 seconds to a minute it will simply stop calling FillSamplesBuffer. After some debugging, I discovered that the block of code in AkAudioInputManager that checks whether SamplesCallback is bound will suddenly fail the check at this point, so it appears that the callback is being unbound, but I never return false in the callback so it should always continue.
I had a similar problem with a different delegate that I was using to intercept the Vivox audio, so I'm wondering if this might be the same issue. In that case, I was told by Epic that I shouldn't be using CreateUObject because the delegate was called in a different thread and if it was called while the main thread was doing garbage collection then that could cause it to become unbound. Is it possible something similar is occurring with the AudioInputComponent? I noticed that it also utilizes CreateUObject when it sets up the callbacks and I believe FillSamplesBuffer is called in a different thread as well.
Any help would be appreciated.