diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java index 1edb8c7ac2..cd9b4c4d59 100644 --- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java +++ b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java @@ -116,6 +116,7 @@ class ReactExoplayerView extends FrameLayout implements private boolean isInBackground; private boolean isPaused; private boolean isBuffering; + private boolean muted = false; private float rate = 1f; private float audioVolume = 1f; private int minLoadRetryCount = 3; @@ -576,10 +577,14 @@ public void onAudioFocusChange(int focusChange) { if (player != null) { if (focusChange == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK) { // Lower the volume - player.setVolume(audioVolume * 0.8f); + if (!muted) { + player.setVolume(audioVolume * 0.8f); + } } else if (focusChange == AudioManager.AUDIOFOCUS_GAIN) { // Raise it back to normal - player.setVolume(audioVolume * 1); + if (!muted) { + player.setVolume(audioVolume * 1); + } } } } @@ -912,6 +917,7 @@ public void setResizeModeModifier(@ResizeMode.Mode int resizeMode) { private void applyModifiers() { setRepeatModifier(repeat); + setMutedModifier(muted); } public void setRepeatModifier(boolean repeat) { @@ -1069,6 +1075,7 @@ public void setPausedModifier(boolean paused) { } public void setMutedModifier(boolean muted) { + this.muted = muted; audioVolume = muted ? 0.f : 1.f; if (player != null) { player.setVolume(audioVolume);