Use Android SDK to develop mobile applications for streaming video and calls.
Download full WCS Android SDK build including examples and API documentation
https://docs.flashphoner.com/display/ANDROIDSDK11EN/Android+SDK+release+notes
Read API documentation online
http://flashphoner.com/docs/api/WCS5/client/android-sdk/1.1/latest
Download the source code of the examples
https://github.com/flashphoner/wcs-android-sdk-samples
The source code of the examples is located at Github and is used to comment the examples in the present documentation.
For instance, this link line 34 refers to the thirty fourth line in the TwoPlayersActivity.java class of the 2players example, the revision with the hash of 4ed4c6d77.
To test compiled applications, download The full build with the examples And install the .apk file to your Android device.
In Android SDK 1.1 WebRTC library libjingle_peerconnection.jar is updated to actual version. So Android SDK 1.1 requires Android API 26, i.e. application build with Android SDK 1.1 will run on Android 8 and higher. Use Android SDK 1.0 to support previous Android versions.
When publishing in Google Play, two APKs can be deployed - one for each of the Android SDK versions - for compatibility with devices with API lower and higher than 26.
If you have some experience in developing Android apps, you can simply download the aar-library and link it to the project manually, then configure building.
Below is how to do this automatically using the export.sh script:
1. Download the examples
git clone -b 1.1 https://github.com/flashphoner/wcs-android-sdk-samples.git |
2. Download the aar library and put it to the wcs-android-sdk-samples/export
folder
Example:
wget http://flashphoner.com/downloads/builds/flashphoner_client/wcs-android-sdk/1.1/wcs-android-sdk-1.1.0.x.aar cp wcs-android-sdk-1.1.0.x.aar export |
3. Open the wcs-android-sdk-samples/export
folder and execute the export.sh
script that will prepare configs for further building. The result is placed into the wcs-android-sdk-samples/export/output
folder.
cd export ./export.sh wcs-android-sdk-1.1.0.x.aar |
This step is very important because application examples source code is the same for different versions of Android SDK. export.sh script automatically sets miniman required Android API version for building examples depending on Android SDK version |
4. Edit the local.properties file and specify paths to Android SDK and NDK
Example:
ndk.dir=/opt/android-ndk-r12b sdk.dir=/opt/android-sdk-linux |
Prepare examples for building, then go to the 'output' folder and start building:
cd output gradle build |
Since Android SDK build 1.1.0.55, it is necessary to use Gradle 7 and above, or build examples with Gradle wrapper
cd output gradlew build |
Also, JDK 11 should be installed.
Prepare examples for building and put them to the 'output' folder, then rename wcs-android-sdk-samples/export/output
folder to 'wcs_android_sdk_samples', for instance.
1. Install the following programs:
2. Open the project from the 'output' folder in Android Studio
3. Add Gradle run configuration to the Run / Debug Configurations menu
4. To configure the run, specify the build.gradle file, the name of the build and set the purpose to: build
5. Run building of examples.
The building result is .apk files located in the corresponding folders: 2players/build, click-to-call/build, and so on.
The Android SDK file is located in the following path in the project: libs/wcs-android-sdk-1.0.1.2.aar
If you cannot run export script for all the examples, or wish to build a separate example, it can be prepared for building as follows:
1. Download examples source code
git clone -b 1.1 https://github.com/flashphoner/wcs-android-sdk-samples.git |
2. Copy an example needed to a separate folder
cd wcs-android-sdk-samples cp streaming-min gradle.properties ~/streaming-min |
3. Download aar library and put it to libs subfolder in example folder
wget https://flashphoner.com/downloads/builds/flashphoner_client/wcs-android-sdk/1.1/wcs-android-sdk-1.1.0.x.aar mkdir ~/streaming-min/libs cp wcs-android-sdk-1.1.0.x.aar ~/streaming-min/libs |
4. Add the buildscript
section to the beginning of build.gradle
file in example folder:
buildscript { repositories { jcenter() mavenCentral() maven { url 'https://maven.google.com' } google() } dependencies { classpath 'com.android.tools.build:gradle:7.0.0' classpath 'com.github.triplet.gradle:play-publisher:1.1.5' } } |
5. Add the repositories
section to the build.gradle
file in example folder:
repositories { jcenter() mavenCentral() maven { url 'https://maven.google.com' } google() flatDir{ dirs 'libs' } } |
6. Replace the string in dependencies
section of the build.gradle
file in the example folder
implementation project(':fp_wcs_api') |
to
implementation 'com.flashphoner.fpwcsapi:wcs-android-sdk-1.1.0.x@aar' |
where wcs-android-sdk-1.1.0.x
is aar file name downloaded at step 3.
7. The build.gradle
file example
apply plugin: 'com.android.application' apply plugin: 'com.github.triplet.play' buildscript { repositories { jcenter() mavenCentral() maven { url 'https://maven.google.com' } google() } dependencies { classpath 'com.android.tools.build:gradle:7.0.0' classpath 'com.github.triplet.gradle:play-publisher:1.1.5' } } Properties signingProps = null android { compileSdkVersion 31 buildToolsVersion '31.0.0' defaultConfig { applicationId "com.flashphoner.wcsexample.two_way_streaming" minSdkVersion 26 targetSdkVersion 31 versionCode 2600001 versionName "1.1" } def signingPropsFile = System.getenv('SIGNING_PROPERTIES') if (signingPropsFile && new File(signingPropsFile).exists()) { signingProps = new Properties() signingProps.load(new FileInputStream(file(signingPropsFile))) signingConfigs { release { storeFile file(signingProps['keystore']) storePassword signingProps['keystore.password'] keyAlias signingProps['key.alias'] keyPassword signingProps['key.password'] } } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' if (signingProps) { signingConfig signingConfigs.release } } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } repositories { jcenter() mavenCentral() maven { url 'https://maven.google.com' } google() flatDir{ dirs 'libs' } } dependencies { implementation 'com.flashphoner.fpwcsapi:wcs-android-sdk-1.1.0.x@aar' implementation fileTree(include: ['*.jar'], dir: 'libs') testImplementation 'junit:junit:4.12' implementation 'androidx.appcompat:appcompat:1.4.0' implementation 'com.google.android.material:material:1.4.0' } play { if(signingProps) { track = 'production' serviceAccountEmail = signingProps['service.account.email'] pk12File = file(signingProps['service.account.pk12file']) } } |
8. Open the example folder in Android Studio to build the example. Android Studio will do Gradle sync and install gradle version needed
9. To build the example with Gradle install Gradle wrapper and run
gradlew build |
1. It is impossible now to set microphone gain in Android SDK while publishing stream.