diff --git a/library/core/src/main/java/com/google/android/exoplayer2/AudioBecomingNoisyManager.java b/library/core/src/main/java/com/google/android/exoplayer2/AudioBecomingNoisyManager.java index 7da175b4ef..2a52a039d6 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/AudioBecomingNoisyManager.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/AudioBecomingNoisyManager.java @@ -55,7 +55,7 @@ import android.os.Handler; } } - private static final class AudioBecomingNoisyReceiver extends BroadcastReceiver { + private final class AudioBecomingNoisyReceiver extends BroadcastReceiver implements Runnable { private final EventListener listener; private final Handler eventHandler; @@ -67,7 +67,14 @@ import android.os.Handler; @Override public void onReceive(Context context, Intent intent) { if (AudioManager.ACTION_AUDIO_BECOMING_NOISY.equals(intent.getAction())) { - eventHandler.post(listener::onAudioBecomingNoisy); + eventHandler.post(this); + } + } + + @Override + public void run() { + if (receiverRegistered) { + listener.onAudioBecomingNoisy(); } } } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java b/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java index 7af72048dd..b77e8a4150 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java @@ -1265,6 +1265,7 @@ public class SimpleExoPlayer extends BasePlayer @Override public void release() { verifyApplicationThread(); + audioBecomingNoisyManager.setEnabled(false); audioFocusManager.handleStop(); wakeLockManager.setStayAwake(false); player.release();