media/demos
tonihei 6b782d1011 Replace MediaItemFiller by asynchronous callback.
The MediaItemFiller is not flexible enough for most realworld usages
because:
 - it doesn't allow asynchronous resolution of MediaItems (e.g. to
   look up URIs from a database)
 - it doesn't allow to batch updates for multiple items or do more
   advanced customizations (e.g. expanding a mediaId representing
   a playlist to multiple items).

Both issues can be solved by passing in a list of items and
returning a ListenableFuture. The callback itself can also move
into MediaSession.Callback for consistency with the other
callbacks.

PiperOrigin-RevId: 451857319
2022-05-30 16:48:41 +00:00
..
cast Rename TracksInfo and TrackGroupInfo 2022-04-26 14:30:14 +01:00
gl Fix GlUtil vector size constant name. 2022-05-10 17:42:39 +01:00
main Fix some inconsistencies in the MediaItem API 2022-05-26 11:57:21 +00:00
session Replace MediaItemFiller by asynchronous callback. 2022-05-30 16:48:41 +00:00
surface Migrate usages from C.TYPE_* to C.CONTENT_TYPE_* 2022-05-09 10:46:04 +01:00
transformer Fix handling clipping in transformer renderers. 2022-05-30 16:34:38 +00: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.