media/library
bachinger 3c9b0b9b61 Do not setOffloadEndOfStream if AudioTrack is not playing
AudioTrack.setOffloadEndOfStream should be called after a track
has been buffered. Additionally, the AudioTrack must be playing.

It has been observed that for very short media (<1s), the AudioTrack
might not have started immediately after the read that buffered
the audio.

In such a situation, calling AudioTrack.setOffloadEndOfStream throws
and playback fails.

Avoid this failure by checking that the AudioTrack is playing before
calling setOffloadEndOfStream.

This means that very short gapless media will not be gapless, this was
deemed acceptable given that such very short media should be very rare
in offload.

PiperOrigin-RevId: 450431146
2022-05-23 15:13:43 +01:00
..
all Fix minimum API level issue 2022-02-08 11:03:36 +00:00
common Remove 5G-NSA detection on API 29/30. 2022-05-24 12:13:33 +01:00
core Do not setOffloadEndOfStream if AudioTrack is not playing 2022-05-23 15:13:43 +01:00
dash Remove @Nullable from some Dash/Hls/SsMediaSource.Factory methods 2022-05-24 12:20:20 +01:00
database Reformat some javadoc 2022-02-18 15:02:33 +00:00
datasource Disable transcoding when reading content URIs 2022-05-06 15:54:21 +01:00
decoder Expect PresentationTime Discontinuity During Stream Transitions 2022-04-26 14:25:46 +01:00
extractor Refactor MIDI and Flac extractor loaders for deduplication 2022-05-24 10:37:39 +01:00
hls Remove @Nullable from some Dash/Hls/SsMediaSource.Factory methods 2022-05-24 12:20:20 +01:00
rtsp Remove @Nullable from MediaSource.Factory setters 2022-05-24 12:16:55 +01:00
smoothstreaming Remove @Nullable from some Dash/Hls/SsMediaSource.Factory methods 2022-05-24 12:20:20 +01:00
transformer Skip performance tests if device is not capable. 2022-05-23 14:54:02 +01:00
ui Migrate leaf listeners of Player to new onCues override 2022-05-24 11:55:09 +01:00
README.md Update to androidx.media3 2021-10-27 09:12:46 +01:00

ExoPlayer library

The ExoPlayer library is split into multiple modules. See ExoPlayer's top level README for more information about the available library modules and how to use them.