From 66a676aae7201ac810d33c7502830a15b52cdc46 Mon Sep 17 00:00:00 2001 From: Karim Abou Zeid Date: Wed, 30 Mar 2016 16:06:57 +0200 Subject: [PATCH] Made gapless playback working again. --- .../gramophone/service/MultiPlayer.java | 38 ++----------------- 1 file changed, 4 insertions(+), 34 deletions(-) diff --git a/app/src/main/java/com/kabouzeid/gramophone/service/MultiPlayer.java b/app/src/main/java/com/kabouzeid/gramophone/service/MultiPlayer.java index 8e4b1ba4..2aea4bad 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/service/MultiPlayer.java +++ b/app/src/main/java/com/kabouzeid/gramophone/service/MultiPlayer.java @@ -22,8 +22,8 @@ import com.kabouzeid.gramophone.util.PreferenceUtil; public class MultiPlayer implements Playback, MediaPlayer.OnErrorListener, MediaPlayer.OnCompletionListener { public static final String TAG = MultiPlayer.class.getSimpleName(); - private DoubleMediaPlayer mCurrentMediaPlayer = new DoubleMediaPlayer(); - private DoubleMediaPlayer mNextMediaPlayer; + private MediaPlayer mCurrentMediaPlayer = new MediaPlayer(); + private MediaPlayer mNextMediaPlayer; private Context context; @Nullable @@ -116,7 +116,7 @@ public class MultiPlayer implements Playback, MediaPlayer.OnErrorListener, Media return; } if (PreferenceUtil.getInstance(context).gaplessPlayback()) { - mNextMediaPlayer = new DoubleMediaPlayer(); + mNextMediaPlayer = new MediaPlayer(); mNextMediaPlayer.setWakeMode(context, PowerManager.PARTIAL_WAKE_LOCK); mNextMediaPlayer.setAudioSessionId(getAudioSessionId()); if (setDataSourceImpl(mNextMediaPlayer, path)) { @@ -303,7 +303,7 @@ public class MultiPlayer implements Playback, MediaPlayer.OnErrorListener, Media public boolean onError(final MediaPlayer mp, final int what, final int extra) { mIsInitialized = false; mCurrentMediaPlayer.release(); - mCurrentMediaPlayer = new DoubleMediaPlayer(); + mCurrentMediaPlayer = new MediaPlayer(); mCurrentMediaPlayer.setWakeMode(context, PowerManager.PARTIAL_WAKE_LOCK); if (context != null) { Toast.makeText(context, context.getResources().getString(R.string.unplayable_file), Toast.LENGTH_SHORT).show(); @@ -329,34 +329,4 @@ public class MultiPlayer implements Playback, MediaPlayer.OnErrorListener, Media callbacks.onTrackEnded(); } } - - private static final class DoubleMediaPlayer extends MediaPlayer implements MediaPlayer.OnCompletionListener { - private MediaPlayer mNextPlayer; - - private OnCompletionListener mCompletion; - - public DoubleMediaPlayer() { - super.setOnCompletionListener(this); - } - - @Override - public void setNextMediaPlayer(final MediaPlayer next) { - mNextPlayer = next; - } - - @Override - public void setOnCompletionListener(final OnCompletionListener listener) { - mCompletion = listener; - } - - @Override - public void onCompletion(final MediaPlayer mp) { - if (mNextPlayer != null) { - // SystemClock.sleep(25); - mNextPlayer.start(); - } - if (mCompletion != null) - mCompletion.onCompletion(this); - } - } } \ No newline at end of file