I am trying to create an android application for video chat and messaging by using WebRTC Native APIs. I have been through several links and found out that most of the documentation for android is vague, specially if you dont know where to start from. I followed the following links,
https://webrtc.org/native-code/android/#
https://www.chromium.org/developers/how-tos/android-build-instructions
But the above mentioned links doesnt make any sense because I want to develop an android application and these links suggests downloading a chromium and then build that. I know the end result is going to be an apk but what if I want to code my self. I looked into pubnub and OpenTokRTC as well but I dont want to use somebody elses signaling service either (along with pub and sub keys). I tried the following link,
https://github.com/pristineio/webrtc-build-scripts
but this seems to be a bit incomplete for a novice in WebRTC as well since it suggests to get the WebRTC by the following command,
# Pull WebRTC
get_webrtc
Finally I have tried the following link,
http://simonguest.com/2013/08/06/building-a-webrtc-client-for-android/
But the problem with this tutorial is that its not updated at all. Libjingle has been moved to github by now and I dont know how to use gclient to get libjingle from github.
This struggle of mine has been a disaster. Can anyone please help me in something with updated documentation or tutorial which I can use for understanding as to what exactly do I need to develop an application using webRTC native APIs? Please do not give me any links to OpenTokRtc or PubNub.
Thanks
I know this is an old thread, but in case anyone is still searching for a way to build Android apps with libjingle, prebuilt libraries have been published within the last few months that can be added as dependencies very simply to Android Studio projects like so:
dependencies {
compile 'org.webrtc:google-webrtc:1.0.+'
}
In Android Studio 2. Or for Android Studio 3:
dependencies {
implementation 'org.webrtc:google-webrtc:1.0.+'
}
Documentation is here. For an example of how to use the Android API, read through the AppRTC code.
@Mark Sherman gave a good answer on how to get the libjingle lib into compiling into your project. You will still need to come up with your own signaling service. The project I found helpful which includes an Android Client and service is the following:
Client - https://github.com/pchab/AndroidRTC
Signaling - https://github.com/pchab/ProjectRTC
You can also check out Ericsson's cross platform extensive SDK called OpenWebRTC:
http://www.openwebrtc.org/
https://github.com/EricssonResearch/openwebrtc-android-sdk
I am also in the same situation as you are, finding how to integrate my own signalling service into libjingle
and there seems to be no tutorial out there addressing it.
If you are using Android Studio for your development, you should include compile 'io.pristine:libjingle:9694@aar'
in the dependencies
section of your build.gradle
script:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'io.pristine:libjingle:9694@aar'
// the rest of your code
}
This should add libjingle
to your project.
I'm using the library that Mark Sherman mentions. There is a blog post that explains very well all the classes involved in the process: tech.appear.in
NOTE: It doesn't explain anything about signalling servers but introduces you to it.
Also, the AppRTCDemo code available at chromium.googlesource.com can be a good trusted resource to check the workflow. It is a bit complex but if you know what you're looking for it can be useful.
If you wan't a full end to end open source implementation I would look at this library... https://github.com/nhancv/nc-kurento-android
That paired with Kurento (https://github.com/kurento) and included demos will pretty much show you how everything works under the hood. I used this as a starting point for my own webrtc project and it was relatively easy to follow and thorough, although there will still be a learning curve of course.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With