6.1.2 (2024-05-23)
6.1.1 (2024-05-22)
6.1.0 (2024-05-22)
- android: avoid blinking on video track change (#3782) (7b1e129)
- android: implement live configuration management (#3792) (e16730d)
- android: implement seek backward in notification service (#3808) (94b3da3)
- android: playback doesn't work with 0 startPositionMs (#3784) (66e0ba5)
- android: random android crash (#3777) (d4c9be2)
- android: remove remaining ad view when zapping (#3786) (324b461)
- android: source metadata compare function (#3775) (6455380)
- tvos: fix tvOS build and sample (#3785) (cd42dd7)
- add setVolume function to component's ref (#3794) (3cd7ab6)
- android: add possibility to hide seekBar (#3789) (95e6140)
6.0.0 (2024-05-14)
6.0.0-rc.2 (2024-05-13)
- avoid: avoid early return in setSrc (#3759) (2e623ca)
- ios: call
onLoadStart
earlier (#3750) (b3f08f6) - js: fix onPlaybackStateChanged callback (#3753) (f87a793)
- ts: add missing type (#3757) (2d94844)
- Revert "fix(android): video flickering add playback start (#3746)" (#3748) (d25629b), closes #3746 #3748
6.0.0-rc.1 (2024-05-08)
- android: prevent changing video track when video load (#3683) (6f61d7f)
- android: video flickering add playback start (#3746) (b1cd52b)
- avoid crash when setting index to 0 to tracks selection (#3721) (518a9a9)
- ios: destroy adsManager when player detach from super view (#3716) (#3722) (e96c173)
- ios: ensure duration available when playing live (#3710) (d56b251)
- ios: ensure orientation is correct on iOS (#3719) (1a8295c)
- ios: fix text track selection by index (#3728) (51e22ab)
- add notification controls (#3723) (8ad4be4)
- android: cache (#3514) (ecc946d)
- android: implement asset folder playback (#3733) (e05da4e)
- ensure we do not provide callback to native if no callback provided from app (#3735) (c59d00a)
- ios: add early returns (#3741) (1d235a1)
6.0.0-rc.0 (2024-04-22)
- android: catch errors in
performOnPlayerView
(#3685) (3e35326) - android: fixed bug where video would not be visible after remount and change of drm source (#3668) (1af12f9)
- android: seek callback with controls (#3694) (c730306)
- android: set title for external subtitles (#3676) (336b9f0)
- ensure poster works as expected and add it to the sample (#3643) (d694139)
- ensure tracks are available in sample (#3660) (4c7719a)
- ios: add workaround for
TouchableWithoutFeedback
(#3688) (b5ccc48) - ios: apply PictureInPicture state on start (#3655) (07f71c2)
- ios: call PictureInPicture callbacks with native controls (#3603) (051e884), closes #3602 #3602
- ios: do not save pause state before seeking (#3650) (e992243)
- ios: fix sideloading external subtitles (#3690) (efa1c52)
- ios: update onPlaybackStateChanged implementation (#3687) (042e13c)
- ios: workaround for rate change (#3657) (e26afac)
- prevents crash from occurring when using the selected video track with resolution type (#3664) (e82f9dc)
- ts: onPlaybackRateChangeData was not correctly typed (#3651) (2a858df)
6.0.0-beta.8 (2024-04-03)
6.0.0-beta.7 (2024-03-30)
- android: ensure rate is never set to 0 (#3593) (3d7444a)
- android: improve and backBufferDurationMs. mainly let exoplayer manage the prop (#3619) (f10511d)
- android: keep screen on on fullscreen (#3563) (bfb76e6)
- android: track selection parameter has change in last release. (#3594) (d5c8b51)
- fix getLicense function's type definition (#3606) (89ae843)
- inject onGetLicense prop properly for detect user defined or not (#3608) (24c1aab)
- iOS: fix iOS DRM header parser (#3609) (c9a75f3)
- ios: fix PiP callback (#3601) (bb9e7eb)
- ios: fix regression when playing source starting with ph:// (#3630) (75d3707)
- ios: fix startPosition, cropStart and cropEnd to handle float values correctly (#3589) (36bd2e2)
- iOS: throw when content id defined with empty string (#3612) (0983580)
- remove
setNativeProps
usage (#3605) (0312afc)
- android: move backBufferDurationMs from root props to bufferConfig
6.0.0-beta.6 (2024-03-18)
- add missing node_modules paths to metro.config.js of basic example app (#3555) (d505de5)
- add missing shutterColor type (#3561) (ba00881)
- android: check disableFocus when state is ready (#3494) (366c841)
- android: enableDecoderFallback to decrease DECODER_ERROR issue (#3416) (eaa72c6)
- android: onSeek called instantly (#3530) (af6aea8)
- android: suppress lint
PrivateResource
(#3531) (38e3625) - docs/ci: add typescript (#3572) (0f31271)
- docs: fix build (#3571) (4fc7d27)
- ios: add text tracks only if we successfully insertTimeRage (#3557) (b73baad)
- ios: apply
cropStart
when in repeat mode (#3525) (2c0e009) - ios: current release volume change observer (#3565) (16f3cdb)
- ios: Do not crash when accessLog return nil (#3549) (4d4b56c)
- ios: don't crop video when in repeat mode (#3575) (90b31af)
- ios: ensure playback stopped in background (#3587) (41c6785)
- ios: fix missing bridge in bridgeless mode (#3570) (46c8c49)
- ios: fix tvOS build (#3524) (9306d9a)
- ios: split licenseUrl and loadedLicenseUrl (#3578) (7c4d19f)
- android: add subtitle event (#3566) (6184c10)
- implement opacity to control visibility of subtitles (#3583) (f4cce2e)
- ios: Add ios support for accessing WebVTT Subtitle Content (#3541) (253ffb5)
- move require (local files) to
source.uri
(#3535) (41ac781)
6.0.0-beta.5 (2024-02-02)
- android: fix crash with interop layer (#3509) (41e9bcb)
- android: re-layout controls after fullscreen dismiss (#3490) (135d97c)
- fix typo (#3497) (336eb44)
- ios: fix pip memory leak (#3506) (53068dd)
- remove lifecycle listener after component unmount (#3489) (3858a15), closes #3488
- remove pausePlayback when audio focus loss event (#3496) (b1ab0f2)
- Revert "fix: remove pausePlayback when audio focus loss event (#3496)" (#3504) (aec7db6), closes #3496 #3504
6.0.0-beta.4 (2024-01-15)
- add missing audioOutput prop (#3450) (f20d68b)
- android: support opacity properly (#3464) (11e5b75)
- ios: currentPlaybackTime in ms and not seconds (#3472) (3f63c16)
- ios: remove extra dismissFullscreenPlayer declaration (#3474) (045f5fa)
- add visionOS support (#3425) (cf3ebb7)
- ios: migrate from deprecated methods (#3444) (5aaa53d)
- ios: update the way to get keyWindow (#3448) (f35727f)
- ios: update timed metadata handler (#3449) (481cc71)
6.0.0-beta.3 (2023-12-24)
- android: default UA (#3429) (dd7bb54)
- ensure save doesn't crash on android (#3415) (22a2655)
- ios: revert ios url encoding as this breaks encoded urls (#3440) (0723481)
- ReactVideoProps: add accessibility & testID in typing (#3434) (d986b7b)
6.0.0-beta.2 (2023-12-08)
- add allowsExternalPlayback missing on ReactVideoProps (#3398) (72679a7)
- android: add explicitly dependancy to androidx.activity (#3410) (908e30f)
- android: ensure adTagUrl can be reset (#3408) (f9bcaac)
- revert drm type definition change (#3409) (fbb5654)
6.0.0-beta.1 (2023-12-02)
- android: ads build and enable ads in android sample (#3376) (fe89122)
- android: fix leak caused by removing lifecycle listener too early (#3380) (0c0f317)
- android: revert media3 update, back to 1.1.1 (#3369) (5beef38)
- ios: check for ios url query encoding (#3384) (de4159f)
- ios: fix pip(when player doesn't fill screen) (#3363) (11f6201)
- ad: add data to onReceiveAdEvent (#3378) (d05231d)
- add AdEvent enum to have an exhaustive list of all possible AdEvent values (#3374) (b3744f9)
- add onAdError event listener (#3381) (596c02d)
- android: bump media3 version from v1.1.1 to v1.2.0 (#3362) (17dbf6e)
- implement startPosition (#3355) (2648502)
6.0.0-beta.1 (WIP)
- android: fix leak caused by removing lifecycle listener too early (#3380)
6.0.0-beta.0 (2023-11-18)
- example: remove dependency loop (#3353) (211c3c7)
- ios: change isPlaybackLikelyToKeepUp check (#3357) (1ba93f9)
- ios: fix cache playerItemPrepareText type (#3358) (0e23952)
- ios: fix external text tracks crashes with m3u8 files (#3330) (782e7e0)
- update onError definition to match implementation (#3349) (fdbd6a6)
6.0.0-alpha.11 (2023-11-15)
6.0.0-alpha.10 (2023-11-13)
- fixes where Android's muted prop behavior differs from iOS (#3339) (8fbdc28)
- ios: fix wrong fullscreen method definition (#3338) (7f49b56)
- ios: player is frozen after re-focusing on the app (#3326) (722ae34)
- add
onVolumeChange
event (#3322) (cdbc856) - add release-it (#3342) (da27089)
- ios: add onBandwidthUpdate event (#3331) (9054db3)
- Android, iOS: add onVolumeChange event #3322
- iOS: Externally loaded text tracks not loading properly #3461
- All: add built-in typescript support #3266
- All: update documentation generation #3296
- BREAKING CHANGE❗️Android: update isCodecSupported to return enum #3254
- Android: use explicit not-exported flag for AudioBecomingNoisyReceiver #3327
- Android: remove kotlin-android-extensions #3299
- Android: ensure audio volume is changed in UI thread 3292
- Android: multiple internal refactor and switch to kotlin
- Android: refactor log management and add an option to increase log verbosity #3277
- iOS: Fix audio session category when not using the audioOutput prop
- iOS: implement onPlaybackStateChanged callback #3307
- iOS: remove false calls at onPlaybackRateChange #3306
- iOS: audio does not work with headphones #3284
- iOS: Resuming video ad after closing the in-app browser on iOS #3275
- iOS, Android: expose playback functions to ref #3245
- tvOS: fix build: #3276
- Windows: fix build error from over-specified SDK version #3246
- Windows: fix
onError
not being raised #3247
- All: Playing audio over earpiece #2887
- All: Prepare for fabric #3175 #
- iOS: Fix Pip #3221
- iOS: Fix regression in presentFullscreenPlayer & dismissFullscreenPlayer #3230
- tvOS: Fix build #3207
- tvOS: Add sample #3208
- tvOS: Allow chapter customization #3216
- doc: Fix internal links #3229
- All: clean JS warnings (TheWidlarzGroup#3183)
- Android: Add shutterView color configurtion (TheWidlarzGroup#3179)
- Android: React native 0.73 support (TheWidlarzGroup#3163)
- Android: Fix memory leaks from AudioManager #3123
- Android: Fixed syntax error #3182
- iOS: Fix freeze at playback startup (TheWidlarzGroup#3173)
- iOS: Various safety checks (TheWidlarzGroup#3168)
- Feature: Video range support #3030
- iOS: remove undocumented
currentTime
property #3064 - iOS: make sure that the audio in ads is muted when the player is muted. #3068
- iOS: make IMA build optionnal
- iOS: ensure controls are not displayed when disabled by user #3017
- iOS: app crashes on call to presentFullScreenPlayer #2808
- Android: Fix publicated progress handler causing duplicated progress event #2972
- Android: Fix audio/Subtitle tracks selection #2979
- Android: add new events on tracks changed to be notified of audio/text/video Tracks update during playback 2806
- Feature: Add VAST support for AVOD #2923
- Sample: Upgrade react-native version of basic sample #2960
- ensure src is always provided to native player even if it is invalid #2857
- Sample: Add react-native-video controls support #2852
- Android: Switch Google's maven repository to default
google()
#2860 - Android: Implement focusable prop so the video view can toggle whether it is focusable for non-touch devices #2819
- Android: fix linter warning [#2891] (TheWidlarzGroup#2891)
- Fix iOS RCTSwiftLog naming collision #2868
- Added "homepage" to package.json #2882
- Fix regression when fullscreen prop is used combined with controls #2911
- Fix: memory leak issue on iOS #2907
- Fix setting text tracks before player is initialized on iOS #2935
- Fix ios build #2854
- Upgrade ExoPlayer to 2.18.1 #2846
- Feature add new APIs to query supported features of device decoder (widevine level & codec capabilities) on android #2740
- Feature add support of subtitle styling on android #2759
- Fix Android #2690 ensure onEnd is not sent twice #2690
- Fix Exoplayer progress not reported when paused #2664
- Call playbackRateChange onPlay and onPause #1493
- Fix being unable to disable sideloaded texttracks in the AVPlayer #2679
- Fixed crash when iOS seek method called reject on the promise #2743
- Fix maxBitRate property being ignored on Android #2670
- Fix crash when the source is a cameraroll [#2639] (TheWidlarzGroup#2639)
- Fix IOS UI frame drop on loading video [#2848] (TheWidlarzGroup#2848)
-
Remove Android MediaPlayer support #2724 WARNING: when switching from older version to V6, you need to remove all refrerences of android-exoplayer. This android-exoplayer folder has been renamed to android. Exoplayer is now the only player implementation supported.
-
Replace Image.propTypes with ImagePropTypes. #2718
-
Fix iOS build caused by type mismatch #2720
-
ERROR TypeError: undefined is not an object (evaluating '_reactNative.Image.propTypes.resizeMode') #2714
-
Fix video endless loop when repeat set to false or not specified. #2329
- Support disabling buffering #2689
- Fix AudioFocus bug that could cause the player to stop responding to play/pause in some instances. #2689
- Fix player crashing when it is being cleared. #2689
- Add support for customising back buffer duration and handle network errors gracefully to prevent releasing the player when network is lost. #2689
- Allow player to be init before source is provided, and later update once a source is provided. #2689
- Adds handling for providing a empty source in order to stop playback and clear out any existing content #2689
- Add support for detecting if format is supported and exclude unsupported resolutions from auto quality selection and video track info in RN. #2689
- Improve error handling #2689
- Add support for L1 to L3 Widevine fallback if playback fails initially. #2689
- Reduce buffer size based on available heap #2689
- Force garbage collection when there is no available memory #2689
- Improve memory usage #2689
- Support disabling screen recording #2689
- Improved error capturing #2689
- Fix DRM init crashes #2689
- Improve progress reporting #2689
- Fix progress loss when network connection is regained #2689
- Add Google's maven repository to avoid build error #2552
- Fix iOS 15.4 HLS playback race condition #2633
- 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
- Upgrade ExoPlayer to 2.17.1 #2498
- Fix volume reset issue in exoPlayer #2371
- Change WindowsTargetPlatformVersion to 10.0 #2706
- Fixed Android seeking bug #2712
- Fixed
onReadyForDisplay
not being called #2721 - Fix type of
_eventDispatcher
on iOS target to matchbridge.eventDispatcher()
#2720
- Fix for tvOS native audio menu language selector
- Update ExoPlayer to allow pre-init and content clear [#2412] (TheWidlarzGroup#2412)
- iOS rate is reset to 1.0 after play/pause [#2167] (TheWidlarzGroup#2167)
- Upgrade ExoPlayer to 2.13.2 [#2317] (TheWidlarzGroup#2317)
- Fix AudioFocus pausing video when attempting to play [#2311] (TheWidlarzGroup#2311)
- Add ARM64 support for windows #2137
- Fix deprecated API bug for windows #2119
- Added
rate
property and autolinking support for windows #2206
- Fixing ID3 Frame Error When Receiving EventMessage in TimedMetadata #2116
- Basic support for DRM on iOS and Android #1445
- 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
- Add support for react-native Windows Cpp/WinRT #1893
- Fix android play/pause bug related to full-screen mode #1916
- Improve Android Audio Focus #1897
- Added support for full-screen functionality in Android Exoplayer #1730
- 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).
- Fix crash when RCTVideo's superclass doesn't observe the keyPath 'frame' (iOS) #1720
- Fix AndroidX Support bad merge
- AndroidX Support
- Handle racing conditions when props are settled on Exoplayer
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- Add missing files to package.json #1342
- 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
- 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
- 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
- Revert PR to inherit Android SDK versions from root project. Re-add in 3.0 #1080
- 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
- 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