Native Android WebRTC application development

2019-03-09 02:39发布

问题:

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

回答1:

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.



回答2:

@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



回答3:

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.



回答4:

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.