From 7026ca7e51253673bb3ccdc4cfc6f5aada00d81f Mon Sep 17 00:00:00 2001 From: Ash Mishra Date: Thu, 18 Oct 2018 15:21:46 -0700 Subject: [PATCH 01/25] disable airplay when sideloaded captions --- ios/Video/RCTVideo.m | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ios/Video/RCTVideo.m b/ios/Video/RCTVideo.m index 61b8757850..949bee0d18 100644 --- a/ios/Video/RCTVideo.m +++ b/ios/Video/RCTVideo.m @@ -397,10 +397,13 @@ - (NSURL*) urlFilePath:(NSString*) filepath { - (void)playerItemPrepareText:(AVAsset *)asset assetOptions:(NSDictionary * __nullable)assetOptions withCallback:(void(^)(AVPlayerItem *))handler { - if (!_textTracks) { + if (!_textTracks || _textTracks.count==0) { handler([AVPlayerItem playerItemWithAsset:asset]); return; } + + // AVPlayer can't airplay AVMutableCompositions + _allowsExternalPlayback = NO; // sideload text tracks AVMutableComposition *mixComposition = [[AVMutableComposition alloc] init]; From 0a12f7389efaf62aec8009fa2fc8ee8f871c86df Mon Sep 17 00:00:00 2001 From: linguokun Date: Thu, 15 Nov 2018 17:57:37 +0800 Subject: [PATCH 02/25] solve the memory leak on Android and avoid the crash on kikat when call mp.selectTrack(0); --- .../com/brentvatne/react/ReactVideoView.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/com/brentvatne/react/ReactVideoView.java b/android/src/main/java/com/brentvatne/react/ReactVideoView.java index 3ff17a1f98..e06cee64ef 100644 --- a/android/src/main/java/com/brentvatne/react/ReactVideoView.java +++ b/android/src/main/java/com/brentvatne/react/ReactVideoView.java @@ -232,12 +232,19 @@ public void cleanupMediaPlayerResources() { mediaController.hide(); } if ( mMediaPlayer != null ) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + mMediaPlayer.setOnTimedMetaDataAvailableListener(null); + } mMediaPlayerValid = false; release(); } if (mIsFullscreen) { setFullscreen(false); } + if (mThemedReactContext != null) { + mThemedReactContext.removeLifecycleEventListener(this); + mThemedReactContext = null; + } } public void setSrc(final String uriString, final String type, final boolean isNetwork, final boolean isAsset, final ReadableMap requestHeaders) { @@ -565,7 +572,10 @@ public void run() { } // Select track (so we can use it to listen to timed meta data updates) - mp.selectTrack(0); + try{ + mp.selectTrack(0); + }catch (Throwable t){ + } } @Override @@ -601,7 +611,10 @@ public boolean onInfo(MediaPlayer mp, int what, int extra) { @Override public void onBufferingUpdate(MediaPlayer mp, int percent) { // Select track (so we can use it to listen to timed meta data updates) - mp.selectTrack(0); + try{ + mp.selectTrack(0); + }catch (Throwable t){ + } mVideoBufferedDuration = (int) Math.round((double) (mVideoDuration * percent) / 100.0); } From 29826fc98f6715b7f7c66c6ff4f63b6d5cc7b7d0 Mon Sep 17 00:00:00 2001 From: Ash Mishra Date: Mon, 26 Nov 2018 10:16:19 -0800 Subject: [PATCH 03/25] readme update for disabled video on airplay --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 74438362a8..79d50610eb 100644 --- a/README.md +++ b/README.md @@ -603,6 +603,8 @@ uri | URL for the text track. Currently, only tracks hosted on a webserver are s On iOS, sidecar text tracks are only supported for individual files, not HLS playlists. For HLS, you should include the text tracks as part of the playlist. +NOTE: Due to iOS limitations, sidecar textTracks are not available for Airplay. If textTracks are specified for video that is airplayed, the visual content of the video is disabled (only audio will stream). + Example: ``` import { TextTrackType }, Video from 'react-native-video'; From 11db3439873ecd5c2dc4fd26926fd757e323402e Mon Sep 17 00:00:00 2001 From: Ash Mishra Date: Mon, 29 Oct 2018 09:53:52 -0700 Subject: [PATCH 04/25] Support for HLS maximum bit rate adaptive streaming --- README.md | 3 +++ Video.js | 1 + .../brentvatne/exoplayer/ReactExoplayerView.java | 14 ++++++++++++++ .../exoplayer/ReactExoplayerViewManager.java | 6 ++++++ ios/Video/RCTVideo.m | 9 +++++++++ ios/Video/RCTVideoManager.m | 1 + 6 files changed, 34 insertions(+) diff --git a/README.md b/README.md index 96c17151e5..14de639782 100644 --- a/README.md +++ b/README.md @@ -583,6 +583,9 @@ Sets the media source. You can pass an asset loaded via require or an object wit The docs for this prop are incomplete and will be updated as each option is investigated and tested. +#### maximumBitRate +Sets the maximum bit rate for HLS media sources. If an HLS m3u8 manifest describes multiple streams, the maximum bit rate determines the video stream selected + ##### Asset loaded via require Example: diff --git a/Video.js b/Video.js index 77b02f0a9e..60bf2b0286 100644 --- a/Video.js +++ b/Video.js @@ -330,6 +330,7 @@ Video.propTypes = { // Opaque type returned by require('./video.mp4') PropTypes.number ]), + maximumBitRate: PropTypes.number, resizeMode: PropTypes.string, poster: PropTypes.string, posterResizeMode: Image.propTypes.resizeMode, 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 7d69368efc..2cd4b04672 100644 --- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java +++ b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java @@ -110,6 +110,7 @@ class ReactExoplayerView extends FrameLayout implements private boolean isBuffering; private float rate = 1f; private float audioVolume = 1f; + private int maximumBitRate = 0; private int minBufferMs = DefaultLoadControl.DEFAULT_MIN_BUFFER_MS; private int maxBufferMs = DefaultLoadControl.DEFAULT_MAX_BUFFER_MS; @@ -244,6 +245,9 @@ private void initializePlayer() { if (player == null) { TrackSelection.Factory videoTrackSelectionFactory = new AdaptiveTrackSelection.Factory(BANDWIDTH_METER); trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory); + trackSelector.setParameters(trackSelector.buildUponParameters() + .setMaxVideoBitrate(maximumBitRate)); + DefaultAllocator allocator = new DefaultAllocator(true, C.DEFAULT_BUFFER_SEGMENT_SIZE); DefaultLoadControl defaultLoadControl = new DefaultLoadControl(allocator, minBufferMs, maxBufferMs, bufferForPlaybackMs, bufferForPlaybackAfterRebufferMs, -1, true); player = ExoPlayerFactory.newSimpleInstance(getContext(), trackSelector, defaultLoadControl); @@ -906,6 +910,16 @@ public void setRateModifier(float newRate) { } } + public void setMaximumBitRateModifier(int newMaximumBitRate) { + if (newMaximumBitRate==0) newMaximumBitRate = Integer.MAX_VALUE; + maximumBitRate = newMaximumBitRate; + + if (player != null) { + trackSelector.setParameters(trackSelector.buildUponParameters() + .setMaxVideoBitrate(maximumBitRate)); + } + } + public void setPlayInBackground(boolean playInBackground) { this.playInBackground = playInBackground; diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java index 4d1ec286ec..7c7f6baab8 100644 --- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java +++ b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java @@ -47,6 +47,7 @@ public class ReactExoplayerViewManager extends ViewGroupManager Date: Sun, 4 Nov 2018 17:55:43 -0800 Subject: [PATCH 05/25] Update name to maxBitRate, remove reference to HLS --- README.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 14de639782..d71f7e3583 100644 --- a/README.md +++ b/README.md @@ -266,6 +266,7 @@ var styles = StyleSheet.create({ * [headers](#headers) * [id](#id) * [ignoreSilentSwitch](#ignoresilentswitch) +* [maxBitRate](#maxbitrate) * [muted](#muted) * [paused](#paused) * [playInBackground](#playinbackground) @@ -434,6 +435,16 @@ Controls the iOS silent switch behavior Platforms: iOS +#### maxBitRate +Sets the desired limit, in bits per second, when multiple video streams are available for a playlist. + +Example: +``` +maxBitRate={2000000} // 2 megabits +``` + +Platforms: Android ExoPlayer, iOS + #### muted Controls whether the audio is muted * **false (default)** - Don't mute audio @@ -583,8 +594,6 @@ Sets the media source. You can pass an asset loaded via require or an object wit The docs for this prop are incomplete and will be updated as each option is investigated and tested. -#### maximumBitRate -Sets the maximum bit rate for HLS media sources. If an HLS m3u8 manifest describes multiple streams, the maximum bit rate determines the video stream selected ##### Asset loaded via require From 12a482a8e397b7e877abc26f93e45ec09ccbf031 Mon Sep 17 00:00:00 2001 From: Hampton Maxwell Date: Mon, 5 Nov 2018 11:45:05 -0800 Subject: [PATCH 06/25] Make bitrate explanation more explicit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d71f7e3583..8f9926bbfe 100644 --- a/README.md +++ b/README.md @@ -436,7 +436,7 @@ Controls the iOS silent switch behavior Platforms: iOS #### maxBitRate -Sets the desired limit, in bits per second, when multiple video streams are available for a playlist. +Sets the desired limit, in bits per second, of network bandwidth consumption when multiple video streams are available for a playlist. Example: ``` From 5ab8165c3d57ff89bd3d5b60d1c0383863d19dc4 Mon Sep 17 00:00:00 2001 From: Ash Mishra Date: Mon, 26 Nov 2018 14:50:31 -0800 Subject: [PATCH 07/25] renamed maximumBitRate to maxBitRate. Added applyModifiers support --- Video.js | 2 +- .../exoplayer/ReactExoplayerView.java | 12 +++++------ .../exoplayer/ReactExoplayerViewManager.java | 6 +++--- ios/Video/RCTVideo.m | 20 ++++++++++--------- ios/Video/RCTVideoManager.m | 2 +- 5 files changed, 22 insertions(+), 20 deletions(-) diff --git a/Video.js b/Video.js index 60bf2b0286..a974d99551 100644 --- a/Video.js +++ b/Video.js @@ -330,7 +330,7 @@ Video.propTypes = { // Opaque type returned by require('./video.mp4') PropTypes.number ]), - maximumBitRate: PropTypes.number, + maxBitRate: PropTypes.number, resizeMode: PropTypes.string, poster: PropTypes.string, posterResizeMode: Image.propTypes.resizeMode, 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 2cd4b04672..7dc02c8333 100644 --- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java +++ b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java @@ -110,7 +110,7 @@ class ReactExoplayerView extends FrameLayout implements private boolean isBuffering; private float rate = 1f; private float audioVolume = 1f; - private int maximumBitRate = 0; + private int maxBitRate = 0; private int minBufferMs = DefaultLoadControl.DEFAULT_MIN_BUFFER_MS; private int maxBufferMs = DefaultLoadControl.DEFAULT_MAX_BUFFER_MS; @@ -246,7 +246,7 @@ private void initializePlayer() { TrackSelection.Factory videoTrackSelectionFactory = new AdaptiveTrackSelection.Factory(BANDWIDTH_METER); trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory); trackSelector.setParameters(trackSelector.buildUponParameters() - .setMaxVideoBitrate(maximumBitRate)); + .setMaxVideoBitrate(maxBitRate)); DefaultAllocator allocator = new DefaultAllocator(true, C.DEFAULT_BUFFER_SEGMENT_SIZE); DefaultLoadControl defaultLoadControl = new DefaultLoadControl(allocator, minBufferMs, maxBufferMs, bufferForPlaybackMs, bufferForPlaybackAfterRebufferMs, -1, true); @@ -910,13 +910,13 @@ public void setRateModifier(float newRate) { } } - public void setMaximumBitRateModifier(int newMaximumBitRate) { - if (newMaximumBitRate==0) newMaximumBitRate = Integer.MAX_VALUE; - maximumBitRate = newMaximumBitRate; + public void setMaxBitRateModifier(int newMaxBitRate) { + if (newMaxBitRate==0) newMaxBitRate = Integer.MAX_VALUE; + maxBitRate = newMaxBitRate; if (player != null) { trackSelector.setParameters(trackSelector.buildUponParameters() - .setMaxVideoBitrate(maximumBitRate)); + .setMaxVideoBitrate(maxBitRate)); } } diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java index 7c7f6baab8..031f8636c0 100644 --- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java +++ b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java @@ -47,7 +47,7 @@ public class ReactExoplayerViewManager extends ViewGroupManager Date: Tue, 27 Nov 2018 19:55:10 -0800 Subject: [PATCH 08/25] Fix Android onSeek --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index de721463d3..4a67ea33ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## Changelog +### Version 4.0.2 +* Generate onSeek on Android ExoPlayer & MediaPlayer after seek completes [#1351](https://github.com/react-native-community/react-native-video/pull/1351) +* Remove unneeded onVideoSaved event [#1350](https://github.com/react-native-community/react-native-video/pull/1350) + ### Version 4.0.1 * Add missing files to package.json [#1342](https://github.com/react-native-community/react-native-video/pull/1342) From 96c42844fea4e7a1b364b6cfb94d16248246a3a8 Mon Sep 17 00:00:00 2001 From: vadim Date: Wed, 28 Nov 2018 14:56:58 +0200 Subject: [PATCH 09/25] ExoPlayer - Add possibility to hide shutterView --- README.md | 8 ++++++++ Video.js | 1 + .../java/com/brentvatne/exoplayer/ExoPlayerView.java | 10 ++++++++++ .../com/brentvatne/exoplayer/ReactExoplayerView.java | 5 +++++ .../exoplayer/ReactExoplayerViewManager.java | 6 ++++++ 5 files changed, 30 insertions(+) diff --git a/README.md b/README.md index a7c8430e50..103cd47005 100644 --- a/README.md +++ b/README.md @@ -693,6 +693,14 @@ useTextureView can only be set at same time you're setting the source. Platforms: Android ExoPlayer +#### hideShutterView +Controls ExoPlayer shutterView(black screen while loading) visibility + +* **false (default)** - Show shutterView +* **true** - Hide shutterView + +Platforms: Android ExoPlayer + #### volume Adjust the volume. * **1.0 (default)** - Play at full volume diff --git a/Video.js b/Video.js index 77b02f0a9e..60dd3f5453 100644 --- a/Video.js +++ b/Video.js @@ -383,6 +383,7 @@ Video.propTypes = { fullscreenOrientation: PropTypes.oneOf(['all','landscape','portrait']), progressUpdateInterval: PropTypes.number, useTextureView: PropTypes.bool, + hideShutterView: PropTypes.bool, onLoadStart: PropTypes.func, onLoad: PropTypes.func, onBuffer: PropTypes.func, diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java index 85876709af..35d5651228 100644 --- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java +++ b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java @@ -39,6 +39,7 @@ public final class ExoPlayerView extends FrameLayout { private ViewGroup.LayoutParams layoutParams; private boolean useTextureView = false; + private boolean hideShutterView = false; public ExoPlayerView(Context context) { this(context, null); @@ -106,6 +107,10 @@ private void updateSurfaceView() { } } + private void updateShutterViewVisibility() { + shutterView.setVisibility(this.hideShutterView ? View.INVISIBLE : View.VISIBLE); + } + /** * Set the {@link SimpleExoPlayer} to use. The {@link SimpleExoPlayer#setTextOutput} and * {@link SimpleExoPlayer#setVideoListener} method of the player will be called and previous @@ -161,6 +166,11 @@ public void setUseTextureView(boolean useTextureView) { updateSurfaceView(); } + public void setHideShutterView(boolean hideShutterView) { + this.hideShutterView = hideShutterView; + updateShutterViewVisibility(); + } + private final Runnable measureAndLayout = new Runnable() { @Override public void run() { 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 dc49402da7..033329b71b 100644 --- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java +++ b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java @@ -131,6 +131,7 @@ class ReactExoplayerView extends FrameLayout implements private float mProgressUpdateInterval = 250.0f; private boolean playInBackground = false; private boolean useTextureView = false; + private boolean hideShutterView = false; private Map requestHeaders; // \ End props @@ -954,6 +955,10 @@ public void setUseTextureView(boolean useTextureView) { exoPlayerView.setUseTextureView(useTextureView); } + public void setHideShutterView(boolean hideShutterView) { + exoPlayerView.setHideShutterView(hideShutterView); + } + public void setBufferConfig(int newMinBufferMs, int newMaxBufferMs, int newBufferForPlaybackMs, int newBufferForPlaybackAfterRebufferMs) { minBufferMs = newMinBufferMs; maxBufferMs = newMaxBufferMs; diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java index 4d1ec286ec..fb72f434af 100644 --- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java +++ b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java @@ -51,6 +51,7 @@ public class ReactExoplayerViewManager extends ViewGroupManager Date: Wed, 28 Nov 2018 15:00:27 +0200 Subject: [PATCH 10/25] Add hideShutterView to configurable props --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 103cd47005..65a3418cfd 100644 --- a/README.md +++ b/README.md @@ -282,6 +282,7 @@ var styles = StyleSheet.create({ * [stereoPan](#stereopan) * [textTracks](#texttracks) * [useTextureView](#usetextureview) +* [hideShutterView](#hideshutterview) * [volume](#volume) ### Event props From 2caf713857898f39bc964690e4c76cd92099ae6e Mon Sep 17 00:00:00 2001 From: vadim Date: Fri, 30 Nov 2018 18:42:22 +0200 Subject: [PATCH 11/25] Update changelog and documentation --- CHANGELOG.md | 1 + README.md | 18 +++++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index de721463d3..18f920beed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### Version 4.0.1 * Add missing files to package.json [#1342](https://github.com/react-native-community/react-native-video/pull/1342) +* Add possibility to remove black screen while video is loading in Exoplayer [#1355](https://github.com/react-native-community/react-native-video/pull/1355) ### Version 4.0.0 * Partial support for timed metadata on Android MediaPlayer [#707](https://github.com/react-native-community/react-native-video/pull/707) diff --git a/README.md b/README.md index 65a3418cfd..4986cd9130 100644 --- a/README.md +++ b/README.md @@ -264,6 +264,7 @@ var styles = StyleSheet.create({ * [fullscreenAutorotate](#fullscreenautorotate) * [fullscreenOrientation](#fullscreenorientation) * [headers](#headers) +* [hideShutterView](#hideshutterview) * [id](#id) * [ignoreSilentSwitch](#ignoresilentswitch) * [muted](#muted) @@ -282,7 +283,6 @@ var styles = StyleSheet.create({ * [stereoPan](#stereopan) * [textTracks](#texttracks) * [useTextureView](#usetextureview) -* [hideShutterView](#hideshutterview) * [volume](#volume) ### Event props @@ -418,6 +418,14 @@ headers={{ Platforms: Android ExoPlayer +#### hideShutterView +Controls ExoPlayer shutterView(black screen while loading) visibility + +* **false (default)** - Show shutterView +* **true** - Hide shutterView + +Platforms: Android ExoPlayer + #### id Set the DOM id element so you can use document.getElementById on web platforms. Accepts string values. @@ -694,14 +702,6 @@ useTextureView can only be set at same time you're setting the source. Platforms: Android ExoPlayer -#### hideShutterView -Controls ExoPlayer shutterView(black screen while loading) visibility - -* **false (default)** - Show shutterView -* **true** - Hide shutterView - -Platforms: Android ExoPlayer - #### volume Adjust the volume. * **1.0 (default)** - Play at full volume From 06b5d50f5ba6aa977268d567710a3ecc7bce66f3 Mon Sep 17 00:00:00 2001 From: Hampton Maxwell Date: Wed, 5 Dec 2018 17:36:35 -0800 Subject: [PATCH 12/25] Slightly clean up AirPlay / textTracks message --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 79d50610eb..9d19db44af 100644 --- a/README.md +++ b/README.md @@ -603,7 +603,7 @@ uri | URL for the text track. Currently, only tracks hosted on a webserver are s On iOS, sidecar text tracks are only supported for individual files, not HLS playlists. For HLS, you should include the text tracks as part of the playlist. -NOTE: Due to iOS limitations, sidecar textTracks are not available for Airplay. If textTracks are specified for video that is airplayed, the visual content of the video is disabled (only audio will stream). +Note: Due to iOS limitations, sidecar text tracks are not compatible with Airplay. If textTracks are specified, AirPlay support will be automatically disabled. Example: ``` From a34f6e7b8a32648e878cab1dce1ef6fd4c186a1d Mon Sep 17 00:00:00 2001 From: Hampton Maxwell Date: Wed, 5 Dec 2018 17:39:20 -0800 Subject: [PATCH 13/25] Add disable AirPlay if side car text tracks enabled --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a67ea33ae..90281fd58d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ### Version 4.0.2 * Generate onSeek on Android ExoPlayer & MediaPlayer after seek completes [#1351](https://github.com/react-native-community/react-native-video/pull/1351) * Remove unneeded onVideoSaved event [#1350](https://github.com/react-native-community/react-native-video/pull/1350) +* Disable AirPlay if sidecar text tracks are enabled [#1304](https://github.com/react-native-community/react-native-video/pull/1304) ### Version 4.0.1 * Add missing files to package.json [#1342](https://github.com/react-native-community/react-native-video/pull/1342) From 308aa4aea9650dc9473fc55ce96acdd2c6af7675 Mon Sep 17 00:00:00 2001 From: Hampton Maxwell Date: Wed, 5 Dec 2018 20:05:48 -0800 Subject: [PATCH 14/25] Tweak comment for hideShutterView --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 4986cd9130..4d5df1a303 100644 --- a/README.md +++ b/README.md @@ -419,10 +419,10 @@ headers={{ Platforms: Android ExoPlayer #### hideShutterView -Controls ExoPlayer shutterView(black screen while loading) visibility +Controls whether the ExoPlayer shutter view (black screen while loading) is enabled. -* **false (default)** - Show shutterView -* **true** - Hide shutterView +* **false (default)** - Show shutter view +* **true** - Hide shutter view Platforms: Android ExoPlayer From af07f8553ef2b9b366e264797abccbc0312111cf Mon Sep 17 00:00:00 2001 From: Hampton Maxwell Date: Wed, 5 Dec 2018 20:10:50 -0800 Subject: [PATCH 15/25] Move hideShutterView to 4.0.2 --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5bdbcd3c39..35bc2272d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,10 +4,10 @@ * Generate onSeek on Android ExoPlayer & MediaPlayer after seek completes [#1351](https://github.com/react-native-community/react-native-video/pull/1351) * Remove unneeded onVideoSaved event [#1350](https://github.com/react-native-community/react-native-video/pull/1350) * Disable AirPlay if sidecar text tracks are enabled [#1304](https://github.com/react-native-community/react-native-video/pull/1304) +* Add possibility to remove black screen while video is loading in Exoplayer [#1355](https://github.com/react-native-community/react-native-video/pull/1355) ### Version 4.0.1 * Add missing files to package.json [#1342](https://github.com/react-native-community/react-native-video/pull/1342) -* Add possibility to remove black screen while video is loading in Exoplayer [#1355](https://github.com/react-native-community/react-native-video/pull/1355) ### Version 4.0.0 * Partial support for timed metadata on Android MediaPlayer [#707](https://github.com/react-native-community/react-native-video/pull/707) From b2aa8c4e383047475fe6ad794fdf40f058bdec9b Mon Sep 17 00:00:00 2001 From: Hampton Maxwell Date: Wed, 5 Dec 2018 20:12:55 -0800 Subject: [PATCH 16/25] Version 4.1.0 --- CHANGELOG.md | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 35bc2272d7..6bacf4b560 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## Changelog -### Version 4.0.2 +### Version 4.1.0 * Generate onSeek on Android ExoPlayer & MediaPlayer after seek completes [#1351](https://github.com/react-native-community/react-native-video/pull/1351) * Remove unneeded onVideoSaved event [#1350](https://github.com/react-native-community/react-native-video/pull/1350) * Disable AirPlay if sidecar text tracks are enabled [#1304](https://github.com/react-native-community/react-native-video/pull/1304) diff --git a/package.json b/package.json index 3392e4796e..c73f61242b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-video", - "version": "4.0.1", + "version": "4.1.0", "description": "A