From 1ab7c7f91abf94b651f6e7689b164cd816db7356 Mon Sep 17 00:00:00 2001 From: CappielloAntonio Date: Sat, 17 Jul 2021 18:56:43 +0200 Subject: [PATCH] Fix audio focus - notfication and widgets commit b892acb7d423389723c29a25515e8fa75c945023 by jakobkukla --- .../play/service/MultiPlayer.java | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/cappielloantonio/play/service/MultiPlayer.java b/app/src/main/java/com/cappielloantonio/play/service/MultiPlayer.java index 500afe76..30776d39 100644 --- a/app/src/main/java/com/cappielloantonio/play/service/MultiPlayer.java +++ b/app/src/main/java/com/cappielloantonio/play/service/MultiPlayer.java @@ -43,13 +43,28 @@ public class MultiPlayer implements Playback { @Override public void onPlayWhenReadyChanged(boolean playWhenReady, int reason) { Log.i(TAG, String.format("onPlayWhenReadyChanged: %b %d", playWhenReady, reason)); - if (callbacks != null) callbacks.onReadyChanged(playWhenReady, reason); + + if (callbacks != null) { + callbacks.onReadyChanged(playWhenReady, reason); + } } @Override public void onPlaybackStateChanged(int state) { Log.i(TAG, String.format("onPlaybackStateChanged: %d", state)); - if (callbacks != null) callbacks.onStateChanged(state); + + if (callbacks != null) { + callbacks.onStateChanged(state); + } + } + + @Override + public void onPlaybackSuppressionReasonChanged(@Player.PlaybackSuppressionReason int playbackSuppressionReason) { + Log.i(TAG, String.format("onPlaybackSuppressionReasonChanged: %d", playbackSuppressionReason)); + + if (callbacks != null) { + callbacks.onStateChanged(Player.STATE_READY); + } } @Override @@ -167,7 +182,8 @@ public class MultiPlayer implements Playback { @Override public boolean isPlaying() { - return exoPlayer.isPlaying() || exoPlayer.getPlayWhenReady(); + return exoPlayer.getPlayWhenReady() && exoPlayer.getPlaybackSuppressionReason() == Player.PLAYBACK_SUPPRESSION_REASON_NONE; + } @Override