Android Studio project for AppRTCDemo of WebRTC project.
This project now uses the official prebuilt library at jCenter
Android AppRTC Demo of WebRTC project
Android Studio project for AppRTCDemo of WebRTC project.
This project now uses the official prebuilt library at jCenter
Please update your library :)
room is full?
Is there a "how to" manual of this project?
I git - clone the project, and without any change, try to compile in window's android studio for testing and i got this error:
ClassNotFoundException: Didn't find class "org.webrtc.SurfaceViewRenderer" on path: DexPathList[[zip file "/data/app/org.appspot.apprtc-2/base.apk"],nativeLibraryDirectories=[/data/app/org.appspot.apprtc-2/lib/arm64, /vendor/lib64, /system/lib64]]
Any solutions?
Hello Sir,
We are trying to implement audio video calling feature but facing some server setup problem
Kindly assist us in server setup of webrtc
Below is the error we are getting after setting up server
Room connection error: Non-200 response to POST to URL: http://XX.X.XX.XXX:8080/join/poiu : HTTP/1.1 404 Not Found
WSRTCClient: Non-200 response to POST to URL: http://XX.X.XX.XXX:8080/join/poiu : HTTP/1.1 404 Not Found
I want to add ability to keep call in background without being killed.
I am trying to convert the code to a service. Could use some help
thanks.
is there a way to mute the audio or video during the call?
hi,
first I would like to appreciate the work you have been doing. APPRTC demo is very much useful to me. I would like to know if yu have come across any android native client using signaling.simplewebrtc.com signaling server...or have yu tried to do so? I tried to hit the server and facing issue. I tried to use it with socket io wrapper... also if there is source code for apprtc signaling server in github, I would love to have the github link.
Thanks.
Hello,
I download the WebRTC source code and compiled it for Android.Can anyone guide me to record both local or remote screen?
After the update to the latest WebRTC version , I can't run the app on 86X emulators anymore .
I always get this error :
java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/webrtcandroid-2/lib/x86/libjingle_peerconnection_so.so" has unexpected e_machine: 40
at java.lang.Runtime.loadLibrary(Runtime.java:372)
Is it a problem with the build?
I am having own turn server , and i see in the logs that the requests from the app are having no username , but one from webclient have . Please help me with this. I changed some code to allow to add turn server from turn_server_override options as well as . My turnservers were not appearing in pc_config .
// Return the list of ICE servers described by a WebRTCPeerConnection
// configuration string.
private LinkedList<PeerConnection.IceServer> iceServersFromTurnOverrideJSON(String turnServerOverride)
throws JSONException {
JSONArray json = new JSONArray(turnServerOverride);
LinkedList<PeerConnection.IceServer> ret = new LinkedList<PeerConnection.IceServer>();
for(int j = 0; j < json.length(); ++j){
JSONObject server = json.getJSONObject(j);
JSONArray urls = server.getJSONArray("urls");
String credential = server.has("credential") ? server.getString("credential") : "";
String username = server.has("username") ? server.getString("username") : "";
for(int i = 0; i < urls.length(); i++){
String url = urls.getString(i);
ret.add(new PeerConnection.IceServer(url, username, credential));
}
}
return ret;
}
Hello.I download the WebRTC source code and compiled it for Android.
The client is working fine. I want to get hold of the raw audio data that is received from the remote end.
I see the MediaStream class in the Java level and found that it does have various Audio track parameters but couldn't find a way to get hold of the buffer itself.
Appreciate if any body has a clue as to how to access the audio buffer received from the remote end.
Thanks
Can we video call app to app using mobile number
What should be done in order to get a stable Framerate? Improving BW did not help. Any ideas even after setting FPS to 30 I get MediaVideocodex sending 15FPS :(
Hi There,
I am using the libjingle_peerconnection.jar &libjingle_peerconnection_so.so file but despite of setting max width & max height to 1920 X1080 the stream sent is 720p. I have set my samsung tblet to 1080p resolution.Can you please guide me how to get 1080p or update the project with above files. This will be really helpful. Or atleast guide me how to get these files.
will waiting for your reply.
Room IO error: java.io.IOException: Non-200 response when requesting TURN server from https://computeengineondemand.appspot.com/turn?username=79039869&key=4080218913 : HTTP/1.1 400 Bad Request ------do you know why?thank you very much!
is there any doc ?
Hi, very good project!
When do you upgrade it?
Where I can find the latest libjingle_peerconnection.jar ?
Sorry, I am new to Android Studio, which is the latest version 1.4. I met the following error when I tried to debug the app after successful building:
Installation failed with message INSTALL_FAILED_NO_MATCHING_ABIS.
It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing.
WARNING: Uninstalling will remove the application data!
Do you want to uninstall the existing application?
I continued and I tried again and again and I still met this message.
BTW, if possible, please publish the APK file also, so that anyone can try the APK at first.
Is it possible to stream an image ? How to generate a frame? detail Steps appreciated.
Setting Screen capture enable always returns room full. Any solution for this?
How do you obtain & write bytes to the pointer? If I want to use this Library where would I write bytes? some documentation will be very helpful.
Hello,
I am studying your example and I have a question. How can I use this example to implement Many to Many WebRTC connection, if possible of course?
Thanks
Hi!
Which version of libjingle is used in this app? I can't fint the version number in the jar files.
Video in Moverio BT-200 is in Black&White.
I've read about this bug in the webrtc issues. I don't understand why it happens but I'm guessing this could be solved just by updating to a more recent webrtc revision?
I've looked at your commits, @njovy, when upgrading to a higher webrtc revision. I see basically you change libjingle dependencies and update the Java code related to them but I don't even know where to start from to do that.
I'll try to sum up my questions:
Hope the issue is not too convoluted.
Regards.
Hi,
I am trying to make it work on 2g or lower bandwidth networks (my signaling - xmpp works and I am getting ice candidates and sdp). All I am getting is black screen and no voice.
Are there any optimizations you guys can recommend? I can think of few now but not sure if it works:
Are there anything else you guys can recommend.
Room JSON parsing error: org.json.JSONException: No value for turn_url
When i build the appRTC , and come in room, and i will get the following message
10-27 13:52:45.805 31717-7266/com.via.rtc E/de.tavendo.autobahn.WebSocketReader﹕ javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x6082d8c0: Failure in SSL library, usually a protocol error
error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version (external/openssl/ssl/s23_clnt.c:744 0x5d866d74:0x00000000)
Do you have any idea about this message :'(
Hi,
Thanks for putting up this app.
We tried to port this app on google glass and getting 2 issues ;
32540-4504/com.oneminuut.genzo E/libjingle﹕ webrtc: (process_thread_impl.cc:31): TimeUntilNextProcess returned an invalid value -25
07-31 23:11:44..
[31-07-2015 23:13:36] Triloki Nath Yadav: 32540-32540/com.oneminuut.genzo E/IStream﹕ Start of onStart
07-31 23:11:45.977 32540-1153/com.oneminuut.genzo A/libc﹕ Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 1153 (Binder_3)
07-31 23:11:48.852 498-525/? E/InputDispatcher﹕ channel '420cbe30 com.oneminuut.genzo/com.oneminuut.genzo.VideoAssistActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
07-31 23:11:48.907 498-525/? E/InputDispatcher﹕ channel '42208b18 com.oneminuut.genzo/org.appspot.apprtc.CallActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
[9189-9330/com.oneminuut.genzo E/WEBRTC﹕ ERROR ; (23:15:27:622 | 525) 9330; (process_thread_impl.cc:31): TimeUntilNextProcess returned an invalid value -4
07-31 23:15:28.008 9189-9241/com.oneminuut.genzo E/WEBRTC﹕ ERROR ; (23:15:28: 14 | 0) 9241; (voe_audio_processing_impl.cc:1007): SetTypingDetectionStatus: not supported
07-31 23:15:28.110 9189-9242/com.oneminuut.genzo E/libjingle﹕ SetAudioSend: No audio channel exists.
07-31 23:15:28.118 9189-9242/com.oneminuut.genzo E/libjingle﹕ SetAudioPlayout: No audio channel exists.
Kindly see if you can help us.
Many Thanks,
Nitesh
Thanks for sharing your code. I would like to know how can I manage to change the local and remote video size and position in screen.
Thanks
I'm integrating this project into my app with few changes,
One of them is that i open the call as audio call and than switch to video call when the user asks.
the problem is i cant tell when the person i am talking to switches to audio and vice versa.
thanks.
I am using an authentication token in the header of the AsyncHttpURLConnection request.
Right now it is hardcoded but I'm trying to move it to preferences same way as the proposed TODO for glaznev.
I already have everything setup in preferences but I'm not sure what the best approach to access preferences from this non-activity class would be. Dragging the application context or the PreferenceManager all the way through WebSocketRTCClient -> RoomParametersFetcher -> AsyncHttpURLConnection seems to cumbersome.
Self signed certificate case. Getting above error. Can you please tell me what changes I need to make for trust manage to return true.
Hello i am trying to make a call on Dialogic WebRTC demo , when i a create offer the call is received and everything is Ok
but i get the sdp and i try to set the remote desc (peerConnectionClient.setRemoteDescription(sdp);)
i get exception whether on receiving offer
07-29 13:31:07.402 7137-7290/com.koa.test W/libjingle﹕ max-bundle specified without BUNDLE specified
07-29 13:31:07.402 7137-7290/com.koa.test E/libjingle﹕ Failed to set remote offer sdp: Failed to create channels.
07-29 13:31:07.402 7137-7290/com.koa.test E/PCRTCClient﹕ Peerconnection error: setSDP error: Failed to set remote offer sdp: Failed to create channels.
and when receiving Answer
sdp WRONG_CONTENT exception.
I'm trying to use apprtc Android.
If I remove the https://appr.tc address and insert the IP address of my server I get the following error:
09-09 16:39:05.327 13569-19172/org.appspot.apprtc E/RoomRTCClient: Room connection error: Non-200 response to POST to URL: http://XX.XXX.XXX.XXX:8083/r/45048692 : HTTP/1.1 405 Method Not Allowed
09-09 16:39:05.327 13569-19172/org.appspot.apprtc E/WSRTCClient: Non-200 response to POST to URL: http://XX.XXX.XXX.XXX:8083/r/45048692 : HTTP/1.1 405 Method Not Allowed
So if I try to replace POST with GET, the error is as follows:
09-09 16: 44: 48,371 13569-24617 / org.appspot.apprtc E / WSRTCClient: Room JSON parsing error: org.json.JSONException: Value <! DOCTYPE of type java.lang.String can not be converted to JSONObject
Unfortunately I can not fix this, the information found on the web or are old or do not solve my problem
When i build the appRTC , and come in room, and i will get the following message
if (factory == null || isError) { Log.e(TAG, "Peerconnection factory is not created: " + "factory: " + factory + " - isError: " + isError); return; }
E/PCRTCClient: Peerconnection factory is not created: factory: null - isError: false
Now if network connection was lost user disconnected from room.
How I can implement behaviour with reconnection timeout ?
09-26 12:32:58.096 15630-17914/org.appspot.apprtc D/de.tavendo.autobahn.WebSocketConnection: fail connection [code = INTERNAL_ERROR, reason = WebSockets internal error (java.lang.NullPointerException)
09-26 12:32:58.096 15630-17914/org.appspot.apprtc D/de.tavendo.autobahn.WebSocketReader: quit
09-26 12:32:58.096 15630-17956/org.appspot.apprtc D/de.tavendo.autobahn.WebSocketWriter: WebSocket writer ended.
09-26 12:32:58.096 15630-17914/org.appspot.apprtc D/WSChannelRTCClient: WebSocket connection closed. Code: INTERNAL_ERROR. Reason: WebSockets internal error (java.lang.NullPointerException). State: NEW
09-26 12:32:58.096 15630-17914/org.appspot.apprtc D/de.tavendo.autobahn.WebSocketConnection: worker threads stopped
09-26 12:32:58.096 15630-17914/org.appspot.apprtc D/de.tavendo.autobahn.WebSocketConnection: fail connection [code = INTERNAL_ERROR, reason = WebSockets internal error (java.lang.NullPointerException)
09-26 12:32:58.096 15630-17914/org.appspot.apprtc D/de.tavendo.autobahn.WebSocketReader: quit
09-26 12:32:58.096 15630-15630/org.appspot.apprtc D/CallRTCClient: Remote end hung up; dropping PeerConnection
09-26 12:32:58.096 15630-17942/org.appspot.apprtc D/de.tavendo.autobahn.WebSocketConnection: SocketThread exited.
09-26 12:32:58.116 15630-17914/org.appspot.apprtc W/MessageQueue: Handler (de.tavendo.autobahn.WebSocketWriter$ThreadHandler) {42e33318} sending message to a Handler on a dead thread
java.lang.RuntimeException: Handler (de.tavendo.autobahn.WebSocketWriter$ThreadHandler) {42e33318} sending message to a Handler on a dead thread
at android.os.MessageQueue.enqueueMessage(MessageQueue.java:320)
at android.os.Handler.enqueueMessage(Handler.java:626)
at android.os.Handler.sendMessageAtTime(Handler.java:595)
at android.os.Handler.sendMessageDelayed(Handler.java:566)
at android.os.Handler.sendMessage(Handler.java:503)
at de.tavendo.autobahn.WebSocketWriter.forward(WebSocketWriter.java:95)
at de.tavendo.autobahn.WebSocketConnection.failConnection(WebSocketConnection.java:109)
at de.tavendo.autobahn.WebSocketConnection.handleMessage(WebSocketConnection.java:418)
at de.tavendo.autobahn.WebSocketConnection.access$1(WebSocketConnection.java:344)
at de.tavendo.autobahn.WebSocketConnection$ThreadHandler.handleMessage(WebSocketConnection.java:536)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at org.appspot.apprtc.util.LooperExecutor.run(LooperExecutor.java:44)
09-26 12:32:58.121 15630-15897/org.appspot.apprtc D/PCRTCClient: Closing peer connection.
09-26 12:32:58.131 15630-17914/org.appspot.apprtc W/MessageQueue: Handler (android.os.Handler) {42da7678} sending message to a Handler on a dead thread
java.lang.RuntimeException: Handler (android.os.Handler) {42da7678} sending message to a Handler on a dead thread
at android.os.MessageQueue.enqueueMessage(MessageQueue.java:320)
at android.os.Handler.enqueueMessage(Handler.java:626)
at android.os.Handler.sendMessageAtTime(Handler.java:595)
at android.os.Handler.sendMessageDelayed(Handler.java:566)
at android.os.Handler.post(Handler.java:326)
at de.tavendo.autobahn.WebSocketConnection.failConnection(WebSocketConnection.java:121)
at de.tavendo.autobahn.WebSocketConnection.handleMessage(WebSocketConnection.java:418)
at de.tavendo.autobahn.WebSocketConnection.access$1(WebSocketConnection.java:344)
at de.tavendo.autobahn.WebSocketConnection$ThreadHandler.handleMessage(WebSocketConnection.java:536)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at org.appspot.apprtc.util.LooperExecutor.run(LooperExecutor.java:44)
09-26 12:32:58.131 15630-17921/org.appspot.apprtc I/libjingle: (webrtcsession.cc:818): Session:7598169390711790190 Old state:STATE_SENTOFFER New state:STATE_CLOSED
09-26 12:32:58.131 15630-17921/org.appspot.apprtc D/PCRTCClient: IceGatheringState: COMPLETE
09-26 12:32:58.131 15630-17921/org.appspot.apprtc D/PCRTCClient: SignalingState: CLOSED
09-26 12:32:58.136 15630-17914/org.appspot.apprtc W/MessageQueue: Handler (android.os.Handler) {42da7678} sending message to a Handler on a dead thread
java.lang.RuntimeException: Handler (android.os.Handler) {42da7678} sending message to a Handler on a dead thread
at android.os.MessageQueue.enqueueMessage(MessageQueue.java:320)
at android.os.Handler.enqueueMessage(Handler.java:626)
at android.os.Handler.sendMessageAtTime(Handler.java:595)
at android.os.Handler.sendMessageDelayed(Handler.java:566)
at android.os.Handler.post(Handler.java:326)
at de.tavendo.autobahn.WebSocketConnection.failConnection(WebSocketConnection.java:132)
at de.tavendo.autobahn.WebSocketConnection.handleMessage(WebSocketConnection.java:418)
at de.tavendo.autobahn.WebSocketConnection.access$1(WebSocketConnection.java:344)
at de.tavendo.autobahn.WebSocketConnection$ThreadHandler.handleMessage(WebSocketConnection.java:536)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at org.appspot.apprtc.util.LooperExecutor.run(LooperExecutor.java:44)
09-26 12:32:58.136 15630-17914/org.appspot.apprtc D/WSChannelRTCClient: WebSocket connection closed. Code: INTERNAL_ERROR. Reason: WebSockets internal error (java.lang.NullPointerException). State: CLOSED
09-26 12:32:58.136 15630-17914/org.appspot.apprtc W/LooperExecutor: Running looper executor without calling requestStart()
09-26 12:32:58.136 15630-17914/org.appspot.apprtc D/de.tavendo.autobahn.WebSocketConnection: worker threads stopped
09-26 12:32:58.136 15630-17914/org.appspot.apprtc D/WSRTCClient: Disconnect. Room state: CONNECTED
09-26 12:32:58.136 15630-17914/org.appspot.apprtc D/WSRTCClient: Closing room.
09-26 12:32:58.136 15630-17914/org.appspot.apprtc D/WSRTCClient: C->GAE: https://apprtc.appspot.com/leave/2567899654467/48538717
09-26 12:32:58.141 15630-17914/org.appspot.apprtc D/WSChannelRTCClient: Disconnect WebSocket. State: CLOSED
09-26 12:32:58.141 15630-17914/org.appspot.apprtc D/WSChannelRTCClient: Disconnecting WebSocket done.
09-26 12:32:58.141 15630-17914/org.appspot.apprtc D/LooperExecutor: Looper thread finished.
Hello can you give me the libjingle_peerconnection.jar source code? Some question need to change, but inside the jar file
i added the code in my app and made everything accordingly with different package name i am getting this error Peerconnection factory is not created
how can i solve this error?
Hi
We are using https://github.com/ISBX/apprtc-ios alongside https://github.com/njovy/AppRTCDemo/commits/master to have video calls between android and ios devices.
we updated android client recently so we have three kind of clients: latest android client, previous android client and latest ios client.
latest ios vs latest ios ok
previous android vs previous android ok
previous android vs latest ios ok
latest android vs latest android ok
latest android vs previous android ok
latest android vs latest ios not ok
after updating android client to latest version, remote video on ios device became frozen after some seconds when talking with latest android client. remote audio and local video has no problem. remote video on android client has no problem.
any idea?
p.s. I posted this issue in both repositories
Hey @njovy , video calls between androids and desktop browsers only ? or 1device to other device ?
i want group video call
I made a call , and then I entered the room through the server “https://apprtc.appspot.com” ,but I can not see the video my app pushing , I want to know how to do?
It would be nice to have x86 libjingle_peerconnection_so library included in project
How to create more PeerConnections
some java file are missed, you can find it in new pull request or there, source directory [webrtc/base/java/src/org/webrtc]
Dear
It is not connected with STUN server. When i trying to connect with STUN server it raised java.net.SocketTimeoutException exception.
logcat:
09-27 10:25:23.250 30456-30628/healysta.tenwave.com.doctor I/System.out﹕ [socket][3:43587] exception
09-27 10:25:23.251 30456-30628/healysta.tenwave.com.doctor I/System.out﹕ [CDS]close[43587]
09-27 10:25:23.252 30456-30628/healysta.tenwave.com.doctor E/AsyncHttpURLConnection﹕ Socket connection timeout exception is java.net.SocketTimeoutException: failed to connect to stun.l.google.com/74.125.200.127 (port 19302) after 20000ms
09-27 10:25:23.253 30456-30628/healysta.tenwave.com.doctor E/RoomRTCClient﹕ Room connection error: HTTP POST to https://stun.l.google.com:19302/f1396bd8-e079-4237-b244-1a394c3ba96c timeout
09-27 10:25:23.253 30456-30628/healysta.tenwave.com.doctor E/WSRTCClient﹕ HTTP POST to https://stun.l.google.com:19302/f1396bd8-e079-4237-b244-1a394c3ba96c timeout
Please tell me what should i do to connect it with STUN server.
Thank You
Banti kumar
Capturing audio from applications like youtube . Currently only Microphone ON/OFF.
I tried to build revision 13665 (https://chromium.googlesource.com/external/webrtc/+/968c9ccfe80f6f0d64991d5e997ce74774381dfa) by myself - and libjingle_peerconnection_so.so depends on libc++_shared, boring ssl, protobuf_lite. Besides some classes in libjingle_peerconnection_java.jar use classes from base_java.jar (Logging.class for example). But in your commit you have only libjingle_peerconnection_so.so and libjingle_peerconnection.jar. Can you explain how thats possible, maybe this is another revision, not 13665, or maybe you changed files by yourself to cut this dependencies.
""
It would be nice to have x86_64 mips libjingle_peerconnection_so library included in project
when i use 3g/4g or another one use 3g/4g the connection will tell me the ice server connection failed. but when we two all in wifi state ,the connection is all right.could u please tell me how can i fix it?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.