diff --git a/CHANGELOG.md b/CHANGELOG.md index 01300f3e..5280d0ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ * 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) * Video Filters and Save Video [#1306](https://github.com/react-native-community/react-native-video/pull/1306) +* Fix: volume should not change on onAudioFocusChange event [#1327](https://github.com/react-native-community/react-native-video/pull/1327) ### Version 3.2.0 * Basic fullscreen support for Android MediaPlayer [#1138](https://github.com/react-native-community/react-native-video/pull/1138) 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); } } diff --git a/examples/video-caching/ios/Podfile.lock b/examples/video-caching/ios/Podfile.lock index 2689020a..941485aa 100644 --- a/examples/video-caching/ios/Podfile.lock +++ b/examples/video-caching/ios/Podfile.lock @@ -9,9 +9,9 @@ PODS: - glog (0.3.4) - React (0.56.0): - React/Core (= 0.56.0) - - react-native-video/Video (3.1.0): + - react-native-video/Video (3.2.2): - React - - react-native-video/VideoCaching (3.1.0): + - react-native-video/VideoCaching (3.2.2): - DVAssetLoaderDelegate (~> 0.3.1) - React - react-native-video/Video diff --git a/examples/video-caching/ios/VideoCaching/Info.plist b/examples/video-caching/ios/VideoCaching/Info.plist index 171fecca..9ae00c5e 100644 --- a/examples/video-caching/ios/VideoCaching/Info.plist +++ b/examples/video-caching/ios/VideoCaching/Info.plist @@ -24,6 +24,21 @@ 1 LSRequiresIPhoneOS + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + NSExceptionDomains + + localhost + + NSExceptionAllowsInsecureHTTPLoads + + + + + NSLocationWhenInUseUsageDescription + UILaunchStoryboardName LaunchScreen UIRequiredDeviceCapabilities @@ -38,19 +53,5 @@ UIViewControllerBasedStatusBarAppearance - NSLocationWhenInUseUsageDescription - - NSAppTransportSecurity - - - NSExceptionDomains - - localhost - - NSExceptionAllowsInsecureHTTPLoads - - - -