Files
platform-external-webrtc/webrtc/examples/androidapp
magjed 05bfbe47ef AppRTCDemo: Render each video in a separate SurfaceView
This CL introduces a new org.webrtc.VideoRenderer.Callbacks implementation called SurfaceViewRenderer that renders each video stream in its own SurfaceView. AppRTCDemo is updated to use this new rendering.

This CL also does the following changes:
* Make the VideoRenderer.Callbacks interface asynchronous and require that renderFrameDone() is called for every renderFrame(). In JNI, this is implemented with cricket::VideoFrame::Copy()/delete.
* Make public static helper functions: convertScalingTypeToVisibleFraction(), getDisplaySize(), and getTextureMatrix().
* Introduces new helper functions surfaceWidth()/surfaceHeight() in EGlBase that allows to query the surface size.
* Introduce PercentFrameLayout that implements the percentage layout that is used by AppRTCDemo.

BUG=webrtc:4742

Review URL: https://codereview.webrtc.org/1257043004

Cr-Commit-Position: refs/heads/master@{#9699}
2015-08-11 13:50:27 +00:00
..

This directory contains an example Android client for https://apprtc.appspot.com

Prerequisites:
- "Getting the code" on http://www.webrtc.org/native-code/android
- Set up webrtc-related GYP variables:
  export GYP_DEFINES="build_with_libjingle=1 build_with_chromium=0 libjingle_java=1
  OS=android $GYP_DEFINES"
  To cause WEBRTC_LOGGING to emit to Android's logcat, add enable_tracing=1 to
  the $GYP_DEFINES above.
- When targeting both desktop & android, make sure to use a different output_dir
  value in $GYP_GENERATOR_FLAGS - for example
  export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_android"
  or you'll likely end up with mismatched ARM & x86 output artifacts.
  If you use an output_dir other than out/ make sure to modify the command-lines
  below appropriately.
- Finally, run "gclient runhooks" to generate Android-targeting .ninja files.

Example of building & using the app:

cd <path/to/webrtc>/src
ninja -C out/Debug AppRTCDemo
adb install -r out/Debug/apks/AppRTCDemo.apk

In desktop chrome, navigate to https://apprtc.appspot.com and note the r=<NNN> room
this redirects to or navigate directly to https://apprtc.appspot.com/r/<NNN> with
your own room number. Launch AppRTC on the device and add same <NNN> into the room name list.

You can also run application from a command line to connect to the first room in a list:
adb shell am start -n org.appspot.apprtc/.ConnectActivity -a android.intent.action.VIEW
This should result in the app launching on Android and connecting to the 3-dot-apprtc
page displayed in the desktop browser.
To run loopback test execute following command:
adb shell am start -n org.appspot.apprtc/.ConnectActivity -a android.intent.action.VIEW --ez "org.appspot.apprtc.LOOPBACK" true