Being specific, this includes following changes
- Remove PlaylistManager and TimelinePlaylistManager
and use Player's playlist API directly.
- Replace ConcatenatingMediaSource uses with
ExoPlayer MediaItem.
- Replace PlaybackPreparer uses with Player#prepare()
- Add MediaItemConverter for developers to customize
converting AndroidX MediaItems to ExoPlayer MediaItems
and vice-versa.
- Add DefaultMediaItemConverter for providing default
implementation of both MediaItemConverter
and MediaSourceFactory.
Note that removing PlaylistManager loses the ability
to suppress individual playlist API. But decided to remove
for simpler API set. The feature can be added back later
via explicit request.
PiperOrigin-RevId: 326463492
|
||
|---|---|---|
| .. | ||
| src | ||
| build.gradle | ||
| proguard-rules.txt | ||
| README.md | ||
ExoPlayer Media2 extension
The Media2 extension provides builders for SessionPlayer and MediaSession.SessionCallback in the Media2 library.
Compared to MediaSessionConnector that uses MediaSessionCompat, this provides finer grained control for incoming calls, so you can selectively allow/reject commands per controller.
Getting the extension
The easiest way to use the extension is to add it as a gradle dependency:
implementation 'com.google.android.exoplayer:extension-media2:2.X.X'
where 2.X.X is the version, which must match the version of the ExoPlayer
library being used.
Alternatively, you can clone the ExoPlayer repository and depend on the module locally. Instructions for doing this can be found in ExoPlayer's top level README.
Using the extension
Using SessionPlayerConnector
SessionPlayerConnector is a SessionPlayer implementation wrapping a given Player.
You can use a SessionPlayer instance to build a MediaSession, or to set the player
associated with a VideoView or MediaControlView
Using SessionCallbackBuilder
SessionCallbackBuilder lets you build a MediaSession.SessionCallback instance given its
collaborators. You can use a MediaSession.SessionCallback to build a MediaSession.
Links
- Javadoc: Classes matching
com.google.android.exoplayer2.ext.media2.*belong to this module.