From 225e3562f4fdedfce799486dff73f07df0ffd6b1 Mon Sep 17 00:00:00 2001 From: dkanada Date: Wed, 14 Oct 2020 19:25:05 +0900 Subject: [PATCH] fix some possible issues with exoplayer --- .../dkanada/gramophone/service/MultiPlayer.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/dkanada/gramophone/service/MultiPlayer.java b/app/src/main/java/com/dkanada/gramophone/service/MultiPlayer.java index 61eb9921..9e6ad035 100644 --- a/app/src/main/java/com/dkanada/gramophone/service/MultiPlayer.java +++ b/app/src/main/java/com/dkanada/gramophone/service/MultiPlayer.java @@ -93,11 +93,15 @@ public class MultiPlayer implements Playback { @Override public void onPlayerError(ExoPlaybackException error) { Log.i(TAG, "onPlayerError: " + error.getMessage()); - if (context != null) { - Toast.makeText(context, context.getResources().getString(R.string.unplayable_file), Toast.LENGTH_SHORT).show(); + if (context == null) { + return; } - stop(); + Toast.makeText(context, context.getResources().getString(R.string.unplayable_file), Toast.LENGTH_SHORT).show(); + exoPlayer.release(); + + exoPlayer = new SimpleExoPlayer.Builder(context).build(); + isReady = false; } }; @@ -105,6 +109,8 @@ public class MultiPlayer implements Playback { this.context = context; httpClient = new OkHttpClient(); + + if (exoPlayer != null) exoPlayer.release(); exoPlayer = new SimpleExoPlayer.Builder(context).build(); mediaSource = new ConcatenatingMediaSource(); @@ -230,6 +236,8 @@ public class MultiPlayer implements Playback { @Override public void stop() { exoPlayer.release(); + + exoPlayer = null; isReady = false; }