PlayerWrapper throws Exception if getters is called in the
STATE_IDLE. In that case, log may print 50+ lines of stack
traces. It's verbose and can be considered as serious issue.
This CL include folloing changes
- Change to use ExoPlayer's log class
- Adjust log level, because it would be consumed by caller
- Leave log when the debug flag is turned on.
Another CL will remove exceptions between PlayerWrapper and
and SessionPlayerConnector, not to use Exception for ordinary
control flow as the Effective Java suggests.
PiperOrigin-RevId: 326614559
Even after this change, it's unclear to me why we need so many
assets for these tests. Just doing a minimal pass for now though!
PiperOrigin-RevId: 326613941
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
This is the workaround for b/159147455.
The issue will be fixed in media2-session 1.1.0-stable, but we'd
better to have workaround until it's ready.
PiperOrigin-RevId: 325434543
Suggested during the review of 437d1b6e9a
This keeps the Runnable -> Callable<Boolean> conversion encapsulated
inside SessionPlayerConnector which makes it clearer why it's needed.
PiperOrigin-RevId: 321553744