Voice chat (voip): how to change receiving volume?

Is there a way to change incoming voice volume? I wanted to decrease game’s sounds when someone is speaking. Or simply adjust voice and game volume individually from the options menu.

I checked the Voice interface, IVoiceEngine, IVoiceDecoder… none of them seems to have options to adjust voice volume.

Well, I got to detect when someone speaks by using VoiceInt->OnPlayerTalkingStateChangedDelegates.AddUObject(this, &AShooterPlayerController::TalkingStateChanged);. TalkingStateChanged looks like this: void TalkingStateChanged(TSharedRef TalkerId, bool bIsTalking);.

So I can now detect when someone is speaking and change the overall (Master) volume accordingly.

However I still couldn’t figure out how to change receiving voice volume.

Actually, it is possible to change voice volume, but it uses the Master sound class. So it is impossible to set the voice volume without setting everything else.

I have made a pull request to change it to the Voice sound class (SoundClass’/Engine/EngineSounds/Voice.Voice’), so that you can now separately set voice volume.

https://github.com/EpicGames/UnrealEngine/pull/389

If anyone is looking for this answer recently, you can now set your sound class for VoIP on the project settings.

7 Likes