ExoPlayer

ExoPlayer is an open source project that is not part of the Android framework and is distributed separately from the Android SDK. ExoPlayer’s standard audio and video components are built on Android’s MediaCodec API, which was released in Android 4.1 (API level 16). Because ExoPlayer is a library, you can easily take advantage of new features as they become available by updating your app.

ExoPlayer supports features like Dynamic adaptive streaming over HTTP (DASH), SmoothStreaming and Common Encryption, which are not supported by MediaPlayer. It's designed to be easy to customize and extend.

To learn more, read the developer guide and watch the I/O 2017 ExoPlayer session.

Sample code

There are a number of sample apps that demonstrate how to use ExoPlayer for audio and video playback:

  • UAMP—The Universal Music Player uses ExoPlayer for local audio playback.
  • Leanback sample app—Android TV Leanback Support Library Sample App uses ExoPlayer for video playback on Android TV.
  • ExoPlayer demo app—The official repository contains a demo app that showcases many advanced capabilities of the library.
  • Codelab—Demonstrates how to build an Activity that plays media using ExoPlayer.

Additional code samples

The Android DeviceOwner sample further demonstrates the use of the APIs covered on this page.