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 3d141f3c..7d69368e 100644 --- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java +++ b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java @@ -109,6 +109,7 @@ class ReactExoplayerView extends FrameLayout implements private boolean isPaused; private boolean isBuffering; private float rate = 1f; + private float audioVolume = 1f; private int minBufferMs = DefaultLoadControl.DEFAULT_MIN_BUFFER_MS; private int maxBufferMs = DefaultLoadControl.DEFAULT_MAX_BUFFER_MS; @@ -454,10 +455,10 @@ class ReactExoplayerView extends FrameLayout implements if (player != null) { if (focusChange == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK) { // Lower the volume - player.setVolume(0.8f); + player.setVolume(audioVolume * 0.8f); } else if (focusChange == AudioManager.AUDIOFOCUS_GAIN) { // Raise it back to normal - player.setVolume(1); + player.setVolume(audioVolume * 1); } } } @@ -875,15 +876,17 @@ class ReactExoplayerView extends FrameLayout implements } public void setMutedModifier(boolean muted) { + audioVolume = muted ? 0.f : 1.f; if (player != null) { - player.setVolume(muted ? 0 : 1); + player.setVolume(audioVolume); } } public void setVolumeModifier(float volume) { + audioVolume = volume; if (player != null) { - player.setVolume(volume); + player.setVolume(audioVolume); } }