media/demos
tonihei 7d063e9aab Add missing Future cancellation checks
Future.isDone and getDone doesn't imply the Future was successful
and it may have been cancelled or failed.

In case where we handle failure, we should also handle cancellation
to avoid CancellationException to bubble up unchecked.

In demo app code where we use isDone for field initialization, we
want to crash in the failure case (usually security exception where
the connection is disallowed), but we want to gracefully handle
cancellation. Cancellation of these variables usually happens in
Activity.onDestroy/onStop, but methods may be called after this point.

#minor-release

PiperOrigin-RevId: 572178018
(cherry picked from commit fe7c62afe0)
2023-10-23 13:13:46 +01:00
..
cast Suppress NewApi lint warning on <vector> usage in drawables 2023-07-05 09:08:51 +00:00
gl Replace deprecated NullableType from checkerframework with our own one 2023-06-19 16:08:20 +01:00
main Fix period indexing for multi-period DASH DAI live streams 2023-08-25 02:05:46 -07:00
session Add missing Future cancellation checks 2023-10-23 13:13:46 +01:00
session_automotive Add demos/session-automotive module 2023-09-29 04:00:58 -07:00
session_service Add demos/session-automotive module 2023-09-29 04:00:58 -07:00
surface Add android.namespace to all build.gradle files 2023-05-19 17:19:15 +01:00
transformer Overlay: Rename videoFrameAnchor to backgroundFrameAnchor. 2023-09-01 11:28:19 -07:00
README.md Update to androidx.media3 2021-10-27 09:12:46 +01:00

Demos

This directory contains apps that demonstrate how to use Android media modules, like ExoPlayer. Browse the individual demos and their READMEs to learn more.

Running a demo

From Android Studio

  • File -> New -> Import Project -> Specify the root media folder.
  • Choose the demo from the run configuration dropdown list.
  • Click Run.

Using gradle from the command line:

  • Open a Terminal window at the root media folder.
  • Run ./gradlew projects to show all projects. Demo projects start with demo.
  • Run ./gradlew :<demo name>:tasks to view the list of available tasks for the demo project. Choose an install option from the Install tasks section.
  • Run ./gradlew :<demo name>:<install task>.

For example, ./gradlew :demo:installNoDecoderExtensionsDebug installs the ExoPlayer demo app in debug mode with no optional modules.