twilio / twilio-video-app-android

A collaboration application built with the Twilio Video Android SDK

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Twilio Video Android App

Warning

We are no longer allowing new customers to onboard to Twilio Video. Effective December 5th, 2024, Twilio Video will End of Life (EOL) and will cease to function for all customers. Customers may transition to any video provider they choose, however, we are recommending customers migrate to the Zoom Video SDK and we have prepared a Migration Guide. Additional information on this EOL is available in our Help Center here.

To make sure your app is ready for Android 11 please visit this page.

CircleCI

This application demonstrates multi-party voice and video built with Twilio’s Programmable Video Android SDK.

App Preview

Features

Requirements

Android Studio Version Android API Version Min
3.5+ 21

Getting Started

In order to run this application on an Android device or emulator, complete the following steps.

Deploy Twilio Access Token Server

NOTE: The Twilio Function that provides access tokens via a passcode should NOT be used in a production environment. This token server supports seamlessly getting started with the collaboration app, and while convenient, the passcode is not secure enough for production environments. You should use an authentication provider to securely provide access tokens to your client applications. You can find more information about Programmable Video access tokens in this tutorial.

The app requires a back-end to generate Twilio access tokens. Follow the instructions below to deploy a serverless back-end using Twilio Functions.

  1. Install Twilio CLI.
  2. Run twilio login and follow prompts to login to your Twilio account.
  3. Run twilio plugins:install @twilio-labs/plugin-rtc.
  4. Run twilio rtc:apps:video:deploy --authentication passcode.
  5. The passcode that is output will be used later to sign in to the app.

The passcode will expire after one week. To generate a new passcode, run twilio rtc:apps:video:deploy --authentication passcode --override.

Troubleshooting The Twilio CLI

If any errors occur after running a Twilio CLI RTC Plugin command, then try the following steps.

  1. Run twilio plugins:update to update the rtc plugin to the latest version.
  2. Run twilio rtc:apps:video:delete to delete any existing authentication servers.
  3. Run twilio rtc:apps:video:deploy --authentication passcode to deploy a new authentication server.

App Behavior with Different Room Types

NOTE: Usage charges will apply for most room types. See pricing for more information.

After running the command to deploy a Twilio Access Token Server, the room type will be returned in the command line output. Each room type provides a different video experience. More details about these room types can be found here. The rest of this section explains how these room types affect the behavior of the video app.

Group - The Group room type allows up to fifty participants to join a video room in the app. The Network Quality Level (NQL) indicators and dominant speaker are demonstrated with this room type. Also, the VP8 video codec with simulcast enabled along with a bandwidth profile are set by default in order to provide an optimal group video app experience.

Small Group - The Small Group room type provides an identical group video app experience except for a smaller limit of four participants.

Peer-to-peer - Although up to ten participants can join a room using the Peer-to-peer (P2P) room type, it is ideal for a one to one video experience. The NQL indicators, bandwidth profiles, and dominant speaker cannot be used with this room type. Thus, they are not demonstrated in the video app. Also, the VP8 video codec with simulcast disabled and 720p minimum video capturing dimensions are also set by default in order to provide an optimal one to one video app experience. If more than ten participants join a room with this room type, then the video app will present an error.

Go - The Go room type provides a similar Peer-to-peer video app experience except for a smaller limit of two participants. If more than two participants join a room with this room type, then the video app will present an error.

If the max number of participants is exceeded, then the video app will present an error for all room types.

Build

There are different product flavors for the application:

  1. Internal - The application intended for internal testing and QA at Twilio. This variant can only be built by Twilions.
  2. Community - The application intended for developers interested in using Programmable Video. This variant can be built by all developers.
    1. debug and release build types are supported.

Building the Community Flavor

The community flavor of the application is meant for developers who would like to work with the Video Android SDK in the context of a full-fledged application.

To get started with the community flavor follow these steps:

  1. Select the communityDebug Build Variant.
  2. Run the application.

Start Video Conference

For each device:

  1. Run the app.
  2. Enter any unique name in the Your name field.
  3. Enter the passcode from Deploy Twilio Access Token Server in the Passcode field.
  4. Tap Log in.
  5. Enter a room name.
  6. Tap Join.

The passcode will expire after one week. Follow the steps below to sign in with a new passcode.

  1. Generate a new passcode.
  2. In the app tap Settings > Sign Out.
  3. Repeat the steps above.

Tests

Unit Tests

  • Android Studio - Right click and run unit tests on package app/src/main/java/com/twilio/video/app
  • Terminal - ./gradlew app:testInternalDebugUnitTest

UI Tests

UI tests require credentials that are only available to Twilio employees.

Related

For Twilions

Twilio employees should follow these instructions for internal testing.

License

Apache 2.0 license. See LICENSE.txt for details.

About

A collaboration application built with the Twilio Video Android SDK

License:Apache License 2.0


Languages

Language:Kotlin 85.8%Language:Java 14.2%