68b9db4d11
Converts iOS implementation from Objective-c to Swift # During the conversion process some updates to the code structure were also made - Modularize codebase from single file to smaller focused files - Untangled large nested IF statements - Added more null checks, since Swift is more strict with null pointers - Added property to allow for decoding of local video sources with self contained key for offline playback - Updates example apps to test react-native 0.63.4 and uses auto native dependency imports for android and ios
18 KiB
18 KiB
Changelog
Version 6.0.0-alpha1
- Add Google's maven repository to avoid build error #2552
- Fix iOS 15.4 HLS playback race condition #2633
- Add fullscreen support on Android #2073
- Fix app crash from NPE in Exoplayer error handler #2575
- Fix default closed captioning behavior for Android ExoPlayer #2181
- Disable pipController init if pictureInPicture is false #2645
- Make sure modifiers are applied before playing #2395
- Better support newer versions of RNW (64 and newer) #2535
- Fix nil string uri parameter error #695
- (Breaking) Bump shaka-player to 3.3.2 #2587
- Improve basic player example on android #2662
- Ensure we always use
hideShutterView
before showing theshutterView
on Android #2609 - Convert iOS implementation to Swift #2527
- Add iOS support for decoding offline sources #2527
- Update basic example applications (React Native 0.63.4) #2527
Version 5.2.0
- Fix for tvOS native audio menu language selector
- Update ExoPlayer to allow pre-init and content clear [#2412] (https://github.com/react-native-video/react-native-video/pull/2412)
- iOS rate is reset to 1.0 after play/pause [#2167] (https://github.com/react-native-video/react-native-video/pull/2167)
- Upgrade ExoPlayer to 2.13.2 [#2317] (https://github.com/react-native-video/react-native-video/pull/2317)
- Fix AudioFocus pausing video when attempting to play [#2311] (https://github.com/react-native-video/react-native-video/pull/2311)
Version 5.1.0-alpha9
- Add ARM64 support for windows #2137
- Fix deprecated API bug for windows #2119
- Added
rate
property and autolinking support for windows #2206
Version 5.1.0-alpha8
- Fixing ID3 Frame Error When Receiving EventMessage in TimedMetadata #2116
Version 5.1.0-alpha7
- Basic support for DRM on iOS and Android #1445
Version 5.1.0-alpha6
- Fix iOS bug which would break size of views when video is displayed with controls on a non full-screen React view. #1931
- Fix video dimensions being undefined when playing HLS in ios. #1992
- Add support for audio mix with other apps for iOS. #1978
- Properly implement pending seek for iOS. #1994
- Added
preferredForwardBufferDuration
(iOS) - the duration the player should buffer media from the network ahead of the playhead to guard against playback disruption. (#1944) - Added
currentPlaybackTime
(Android ExoPlayer, iOS) - when playing an HLS live stream with aEXT-X-PROGRAM-DATE-TIME
tag configured, then this property will contain the epoch value in msec. (#1944) - Added
trackId
(Android ExoPlayer) - Configure an identifier for the video stream to link the playback context to the events emitted. (#1944) - Added preventsDisplaySleepDuringVideoPlayback (#2019)
- Reverted the JS fullscreening for Android. #2013
- Set iOS request headers without needing to edit RCTVideo.m. #2014
- Fix exoplayer aspect ratio update on source changes #2053
Version 5.1.0-alpha5
- Add support for react-native Windows Cpp/WinRT #1893
Version 5.1.0-alpha4
- Fix android play/pause bug related to full-screen mode #1916
Version 5.1.0-alpha3
- Improve Android Audio Focus #1897
Version 5.1.0-alpha2
- Added support for full-screen functionality in Android Exoplayer #1730
Version 5.1.0-alpha1
- Fixed Exoplayer doesn't work with mute=true (Android). #1696
- Added support for automaticallyWaitsToMinimizeStalling property (iOS) #1723
- Bump Exoplayer to 2.10.4, remove deprecated usages of Exoplayer methods (Android). #1753
- Preserve Exoplayer BandwidthMeter instance across video plays, this should noticeably improve streaming bandwidth detection (Android).
Version 5.0.2
- Fix crash when RCTVideo's superclass doesn't observe the keyPath 'frame' (iOS) #1720
Version 5.0.1
- Fix AndroidX Support bad merge
Version 5.0.0 [Deprecated]
- AndroidX Support
Version 4.4.4
- Handle racing conditions when props are settled on Exoplayer
Version 4.4.3
- Fix mute/unmute when controls are present (iOS) #1654
- Fix Android videos being able to play with background music/audio from other apps.
- Fixed memory leak on iOS when using
controls
#1647 - (Android) Update gradle and target SDK #1629
- Fix iOS stressed mount/unmount crash #1646
Version 4.4.2
- Change compileOnly to implementation on gradle (for newer gradle versions and react-native 0.59 support) #1592
- Replaced RCTBubblingEventBlock events by RCTDirectEventBlock to avoid event name collisions #1625
- Added
onPlaybackRateChange
to README #1578 - Added
onReadyForDisplay
to README #1627 - Improved handling of poster image. Fixes bug with displaying video and poster simultaneously. #1627
- Fix background audio stopping on iOS when using
controls
#1614
Version 4.4.1
- Fix tvOS picture-in-picture compilation regression #1518
- fullscreen rotation issues with iOS built-in controls #1441
- Fix player freeze when playing audio files on ExoPlayer #1529
Version 4.4.0
- Fix runtime warning by replacing
UIManager.RCTVideo
withUIManager.getViewManagerConfig('RCTVideo')
(and ensuring backwards compat) #1487 - Fix loading package resolved videos when using video-caching #1438
- Fix "message sent to deallocated instance" crash on ios #1482
- Display a warning when source is empty #1478
- Don't crash on iOS for an empty source #1246
- Recover from from transient internet failures when loading on ExoPlayer #1448
- Add controls support for ExoPlayer #1414
- Fix check for text tracks when iOS caching enabled #1387
- Add support for Picture in Picture on iOS #1325
- Fix UIManager undefined variable #1488
Version 4.3.0
- Fix iOS video not displaying after switching source #1395
- Add the filterEnabled flag, fixes iOS video start time regression #1384
- Fix text not appearing in release builds of Android apps #1373
- Update to ExoPlayer 2.9.3 #1406
- Add video track selection & onBandwidthUpdate #1199
- Recovery from transient internet failures and props to configure the custom retry count #1448
Version 4.2.0
- Don't initialize filters on iOS unless a filter is set. This was causing a startup performance regression #1360
- Support setting the maxBitRate #1310
- Fix useTextureView not defaulting to true #1383
- Fix crash on MediaPlayer w/ Android 4.4 & avoid memory leak #1328
Version 4.1.0
- Generate onSeek on Android ExoPlayer & MediaPlayer after seek completes #1351
- Remove unneeded onVideoSaved event #1350
- Disable AirPlay if sidecar text tracks are enabled #1304
- Add possibility to remove black screen while video is loading in Exoplayer #1355
Version 4.0.1
- Add missing files to package.json #1342
Version 4.0.0
- Partial support for timed metadata on Android MediaPlayer #707
- Support video caching for iOS #955
- Video caching cleanups #1172
- Add ipod-library support #926
- Fix crash on ExoPlayer when there are no audio tracks #1233
- Reduce package size #1231
- Remove unnecessary import in TextTrackType #1229
- Prevent flash between poster and video #1167
- Support react-native-dom #1253
- Update to ExoPlayer 2.8.2. Android SDK 26 now required #1170
- Update to ExoPlayer 2.8.4 #1266
- Add fullscreenOrientation option for iOS #1215
- Update to ExoPlayer 2.9.0 #1285
- Switch useTextureView to default to
true
#1286 - Re-add fullscreenAutorotate prop #1303
- Make seek throw a useful error for NaN values #1283
- Video Filters and Save Video #1306
- Fix: volume should not change on onAudioFocusChange event #1327
- Update ExoPlayer to 2.9.1 and OkHTTP to 3.12.0 #1338
Version 3.2.0
- Basic fullscreen support for Android MediaPlayer #1138
- Simplify default Android SDK code #1145 #1146
- Various iOS sideloaded text track fixes #1157
- Fix #1150 where assets with bundled assets don't work on iOS in release mode #1162
- Support configuring the buffer on Android ExoPlayer #1160
- Prevent sleep from sleeping while videos are playing on Android MediaPlayer #1117
- Update NewtonSoft JSON to match react-native-windows version #1169
Version 3.1.0
Version 3.0
- Inherit Android buildtools and SDK version from the root project #1081
- Automatically play on ExoPlayer when the paused prop is not set #1083
- Preserve Android MediaPlayer paused prop when backgrounding #1082
- Support specifying headers on ExoPlayer as part of the source #805
- Prevent iOS onLoad event during seeking #1088
- ExoPlayer playableDuration incorrect #1089
Version 2.3.1
- Revert PR to inherit Android SDK versions from root project. Re-add in 3.0 #1080
Version 2.3.0
- Support allowsExternalPlayback on iOS #1057
- Inherit Android buildtools and SDK version from the root project #999
- Fix bug that caused ExoPlayer to start paused if playInBackground was set #833
- Fix crash if clearing an observer on iOS that was already cleared #1075
- Add audioOnly prop for music files #1039
- Support seeking with more exact tolerance on iOS #1076
Version 2.2.0
- Text track selection support for iOS & ExoPlayer #1049
- Support outputting to a TextureView on Android ExoPlayer #1058
- Support changing the left/right balance on Android MediaPlayer #1051
- Prevent multiple onEnd notifications on iOS #832
- Fix doing a partial swipe on iOS causing a black screen #1048
- Fix crash when switching to a new source on iOS #974
- Add cookie support for ExoPlayer #922
- Remove ExoPlayer onMetadata that wasn't being used #1040
- Fix bug where setting the progress interval on iOS didn't work #800
- Support setting the poster resize mode #595