How to do Voice Chat on android?

Now that multiplayer is finally working with UE4 and android I’d like to know if it’s possible to do voice chat on android devices (for a gearvr co-op experience). So far all information I’ve found is only for Windows and iOS voice chat - if it’s not supported yet could it be a feature request for 4.13?

Also have this topic as a answerhub query here: How to do Voice chat on android? - Mobile - Unreal Engine Forums

I would look into getting libOpus (used on Win, Mac, Linux) working on Android. You can find it in Engine/Source/ThirdParty/libOpus.

We have already passed feature complete for 4.13; the preview period is mostly for bug fixes.

Hi Chris,

Thanks for the info - any chance of getting it added to the requested feature list of 4.14? The task of doing it myself is unfortunately beyond my skills :wink:

I’ll see what I can do but no promises.

Doesn’t Oculus Mobile SDK provide low-latency voice chat functionality ?

Would be even better if we could get that included via blueprints! :slight_smile:

I already wrote a basic implementation of the opus codec for android and of the voice module (Help on writing android voice module? - Audio - Epic Developer Community Forums) but I would need some help for polishing the implementation and to open a proper pull request.

I’m interested in trying the oculus voip support for android too, it should already be integrated in the oculus branch of UE4 (https://developer3.oculus.com/downloads/game-engines/1.9.0/Unreal_Engine_4_Integration/), but I guess the voice module would be needed anyway. Anyone had a chance to try this yet?

Just created a pull request with my VoiceModuleAndroid implementation:
https://github.com/EpicGames/UnrealEngine/pull/2894

Yay! Hopefully it will get accepted.

Hello!
I have been working for a while with a voice implementation to send data through google translator services, and is working pretty well on pc, now my problem is just with Android, but I cannot get it work, so far I did this:
1.- set defaultEngine.ini and defaultGame.ini with the proper stuff
2.- add permission android.permission.RECORD_AUDIO
3.- include every module related to Online a Voice,
4.- I saw in the UPL that apparently is something else called bAndroidVoiceEnabled in the engine.ini in this section: section=“/Script/AndroidRuntimeSettings.AndroidRuntimeSettings”, so I did as well

I am running in android 7, from a Galaxy s6, the target SDK es 22, I don’t want to deal with runtime permission, but I will, not options at this rate :smiley:

Sorry to ask directly to you, but seams you are the MAN:p, this is the final step for my App, I am closeee! I got OK on my state but never data

EDIT: solved, it needs to be on 23 by force ja

Can anybody share a tutorial or example for how to use this android voice module?
I studied c++ codes,but still don’t know how to use.
Thanks.

What do u mean by that, cuz I’ve the same exact problem , state is OK, but no data .

Hi [USER=“33354”]Omar Vector[/USER] it means exactly that, in your project settings in the android tab you must set your SDK target as 23 at least, otherwise the function GetState will return OK, but without gettings any bytes, also I did that 4 versions ago, I dunno if is still working that way.

I did that and only work if the app started for first time, but once I close the app and run it again, the state is only OK , but no bytes , and if I turned off mic permission manually and restarted the app, it works fine once again, just close it and reopen it, state is OK but no bytes, thats really weird , have u ever face same situation ?

hey [USER=“33354”]Omar Vector[/USER] ,totally only works the first time, it is an error in the implementation I think, I didn’t continue my development, but that problem was always there, probably is going to be forever since this was developed for a third party

You are right, I have debugged the build with android studio and found this error AudioRecord start() error -38 , then I found that bec the record driver is not released when the game is closed .

I’ve submitted a bug report already , hope they are able to reproduce it . or I’ve to work with source instead of the binray version trying to apply a fix .

Thanks for your confirmation, I thought I was doing something wrong:))

Hi [USER=“33354”]Omar Vector[/USER] Sorry I saw you other post, seems you are struggling with this, if the error is inside the start() method, I can infer the real error is inside the way they are using to close the device driver, did you try to modify the .xml with the Java Code?, perhaps is fixable there without having to use the source code version, if you reach this far I think is going to be easy to fix, I will check my old code :stuck_out_tongue:

There is good news, Finally , they confirmed the bug and ready for vote , please vote :smiley:
https://issues.unrealengine.com/issue/UE-62389 .
This is the answerhub thread about it
https://answers.unrealengine.com/que…droid-log.html

With regard to driver issue, yes u are right, when it close , it doesnt clear up the driver and shutdown it even if I called VoiceCapture->Shutdown() , I have checked this error on stackover flow .

For .xml , I think I can dig there, but not sure exactly where to find the file , I will search for it ,but yes, I’m struggle as hell ,its like 1 month for now even more . and really I dont wanna move to unity cuz of this, since my app depends on this feature mainly ,even unity has more worse bugs related to some devices gpus already :smiley: and they didnt fix it as they told me “Out datated gpus” while I’m still able to hit 60fps with unreal with decent scenes on my current device .

anyway, if u are able to get any fix let me know, while I keep digging hard already, and if I could hit the fix, I will update all of my thread related to that.

Thanks again mate:))

[USER=“33354”]Omar Vector[/USER]

When I click on link with the issue, it doesn’t work. If you hove mouse over the link you’ll see it’s broken, showing https// (no : )

its fixed now:))

thanks for let me know