I’ve found one from 3 years ago, but it doesn’t seem to work anymore. FVoiceModule::Get().CreateVoiceCapture() always returns nullptr, in any PIE/Build configuration, even though I’ve done everything to the letter. CreateVoiceCapture() now requires additional parameters too, so I presume something else must’ve changed as well since the tutorial was published.
So if anyone has links to any newer sources, I’d really appreciate it.
I also found in this forum that you need to add the following lines to DefaultGame.ini:
[/Script/Engine.GameSession]
bRequiresPushToTalk=false
The results I received after doing this, and following the tutorial briefly was that I did hear my voice but it seemed to be broken in a strange way; maybe I didn’t follow the tutorial correctly :D.
Yes, leaving the DeviceName blank does help, CreateVoiceCapture() returns something, and it kind of captured my voice in a strange way, as you say it, but unfortunately that’s not enough, because there’s nothing about encoding, transmitting, and decoding voice data to other players.
As for the linked thread and the interfaces listed by @Crzyhomer, I can’t figure out with what I should communicate using these interfaces. For instance, I’ve found that VoiceCaptureWindows.h implements IVoiceCapture, but I can’t directly use it because it seems that I can’t #include it into my class. So I guess I have to Get() something somewhere and cast it to IVoiceCapture or other interfaces, but I don’t understand what exactly.
Yeah I was really hoping you would get better results than I did :/. Unfortunately, I am very new to this topic and can’t provide more information; sorry.