diff options
author | ByteHamster <info@bytehamster.com> | 2020-01-25 14:32:43 +0100 |
---|---|---|
committer | ByteHamster <info@bytehamster.com> | 2020-01-25 14:32:46 +0100 |
commit | 3913ff8c45f93a4eafc3a492143ecca049757e9c (patch) | |
tree | a088de25e0f1d2329a4d75160a95af779732c261 /core/src/main/java/de | |
parent | 2f0c627b15af26aace320e1984d6f398a7ee0abe (diff) | |
download | AntennaPod-3913ff8c45f93a4eafc3a492143ecca049757e9c.zip |
Make seeking more reliable
Diffstat (limited to 'core/src/main/java/de')
-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)); } |