mirror of
https://github.com/samsonjs/media.git
synced 2026-03-29 10:05:48 +00:00
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
|
||
|---|---|---|
| .. | ||
| cast | ||
| gl | ||
| main | ||
| session | ||
| session_automotive | ||
| session_service | ||
| surface | ||
| transformer | ||
| README.md | ||
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
mediafolder. - Choose the demo from the run configuration dropdown list.
- Click Run.
Using gradle from the command line:
- Open a Terminal window at the root
mediafolder. - Run
./gradlew projectsto show all projects. Demo projects start withdemo. - Run
./gradlew :<demo name>:tasksto view the list of available tasks for the demo project. Choose an install option from theInstall taskssection. - Run
./gradlew :<demo name>:<install task>.
For example, ./gradlew :demo:installNoDecoderExtensionsDebug installs the
ExoPlayer demo app in debug mode with no optional modules.