diff options
author | H. Lehmann <ByteHamster@users.noreply.github.com> | 2020-01-25 22:22:47 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-25 22:22:47 +0100 |
commit | c8a05a83f9f641b0ec6533288fc65ab428189150 (patch) | |
tree | 2b55d2c11606168214b629fdcaa9e7865a57ea02 /core/src | |
parent | 404534fd830d77200cca5e8dc4333fefba29c6a6 (diff) | |
parent | 3913ff8c45f93a4eafc3a492143ecca049757e9c (diff) | |
download | AntennaPod-c8a05a83f9f641b0ec6533288fc65ab428189150.zip |
Merge pull request #3782 from ByteHamster/seek-reliability
Make seeking more reliable
Diffstat (limited to 'core/src')
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/service/playback/ExoPlayerWrapper.java | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/ExoPlayerWrapper.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/ExoPlayerWrapper.java index c250cd17f..8f7e84561 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/ExoPlayerWrapper.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/ExoPlayerWrapper.java @@ -16,8 +16,9 @@ import com.google.android.exoplayer2.SeekParameters; import com.google.android.exoplayer2.SimpleExoPlayer; import com.google.android.exoplayer2.Timeline; import com.google.android.exoplayer2.audio.AudioAttributes; -import com.google.android.exoplayer2.source.ExtractorMediaSource; +import com.google.android.exoplayer2.extractor.DefaultExtractorsFactory; import com.google.android.exoplayer2.source.MediaSource; +import com.google.android.exoplayer2.source.ProgressiveMediaSource; import com.google.android.exoplayer2.source.TrackGroupArray; import com.google.android.exoplayer2.trackselection.DefaultTrackSelector; import com.google.android.exoplayer2.trackselection.TrackSelectionArray; @@ -71,7 +72,7 @@ public class ExoPlayerWrapper implements IPlayer { loadControl.setBackBuffer(UserPreferences.getRewindSecs() * 1000 + 500, true); SimpleExoPlayer p = ExoPlayerFactory.newSimpleInstance(mContext, new DefaultRenderersFactory(mContext), new DefaultTrackSelector(), loadControl.createDefaultLoadControl()); - p.setSeekParameters(SeekParameters.PREVIOUS_SYNC); + p.setSeekParameters(SeekParameters.EXACT); p.addListener(new Player.EventListener() { @Override public void onTimelineChanged(Timeline timeline, Object manifest, int reason) { @@ -170,7 +171,7 @@ public class ExoPlayerWrapper implements IPlayer { @Override public void prepare() throws IllegalStateException { - mExoPlayer.prepare(mediaSource); + mExoPlayer.prepare(mediaSource, false, true); } @Override @@ -216,7 +217,9 @@ public class ExoPlayerWrapper implements IPlayer { DefaultHttpDataSource.DEFAULT_READ_TIMEOUT_MILLIS, true); DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(mContext, null, httpDataSourceFactory); - ExtractorMediaSource.Factory f = new ExtractorMediaSource.Factory(dataSourceFactory); + DefaultExtractorsFactory extractorsFactory = new DefaultExtractorsFactory(); + extractorsFactory.setConstantBitrateSeekingEnabled(true); + ProgressiveMediaSource.Factory f = new ProgressiveMediaSource.Factory(dataSourceFactory, extractorsFactory); mediaSource = f.createMediaSource(Uri.parse(s)); } |