Merge pull request #1327 from ddudek/fix/android_volume_focus_change

Fix: volume should not change on onAudioFocusChange event
This commit is contained in:
Hampton Maxwell 2018-11-18 20:55:33 -08:00 committed by GitHub
commit 1207d450cb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 4 deletions

View File

@ -17,6 +17,7 @@
* Switch useTextureView to default to `true` [#1286](https://github.com/react-native-community/react-native-video/pull/1286) * Switch useTextureView to default to `true` [#1286](https://github.com/react-native-community/react-native-video/pull/1286)
* Re-add fullscreenAutorotate prop [#1303](https://github.com/react-native-community/react-native-video/pull/1303) * Re-add fullscreenAutorotate prop [#1303](https://github.com/react-native-community/react-native-video/pull/1303)
* Make seek throw a useful error for NaN values [#1283](https://github.com/react-native-community/react-native-video/pull/1283) * Make seek throw a useful error for NaN values [#1283](https://github.com/react-native-community/react-native-video/pull/1283)
* Fix: volume should not change on onAudioFocusChange event [#1327](https://github.com/react-native-community/react-native-video/pull/1327)
### Version 3.2.0 ### Version 3.2.0
* Basic fullscreen support for Android MediaPlayer [#1138](https://github.com/react-native-community/react-native-video/pull/1138) * Basic fullscreen support for Android MediaPlayer [#1138](https://github.com/react-native-community/react-native-video/pull/1138)

View File

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