Skip to content

Latest commit

 

History

History
883 lines (618 loc) · 89.2 KB

CHANGELOG.md

File metadata and controls

883 lines (618 loc) · 89.2 KB

6.7.0 (2024-10-17)

Bug Fixes

  • android: sideloaded subtitles (#4232) (352dfbb)
  • ensure aspect ratio from video is handled in a coherent way (#4219) (a8d5841)
  • iOS: pause video on end reached & don't remove listeners (#4218) (2c19a47)
  • remove warning and refactor & fix ad workflow (#4235) (7501880)

Features

  • add setSource API function fix ads playback (#4185) (9a3fcda)
  • android: add settings button to control video playback speed (#4211) (d1883a7)
  • exoplayerview: Migrate ExoPlayerView to kotlin (#4038) (78f4f04)

6.6.4 (2024-10-03)

Features

  • android: add live video label configuration (#4190) (149924f)

6.6.3 (2024-09-29)

Bug Fixes

Features

  • android: allow to hide specific controls (#4183) (279cc0e)

6.6.2 (2024-09-20)

Features

6.6.1 (2024-09-18)

Bug Fixes

  • ios: fix side loaded text track management (#4180) (7d43d5d)

6.6.0 (2024-09-18)

Bug Fixes

  • android: ensure maxbitrate & selectedVideoTrack interact correctly (#4155) (7f6b500)
  • android: ensure pause is well tken in account after onEnd (#4147) (b2fd8d6)
  • expo-plugin: add check for existing service in AndroidManifest for notification controls (#4172) (0538b3b)
  • ios: ensure onBandwidthUpdate is reported only when value change (#4149) (809a730)
  • ios: losing subtitle selection on foreground (#3707) (bee4123)
  • JS: improve loader api to allow function call instead of component (#4171) (835186a)
  • refactor side loaded text tracks management (#4158) (84a27f3)
  • sample: remove warning on ios with NavigationBar (#4148) (e18769a)
  • visionOS: remove unsupported apis (#4154) (2c1fc96)

Features

  • android: upgrade dependencies / media3 1.4.1 / androidxCore to 1.13.1 / androidxActivity 1.8.2 (#4173) (e57c7bd)

6.5.0 (2024-09-04)

Bug Fixes

  • android: show the status bar and navigation bar after exiting full-screen mode (#4112) (8b8ebe9)
  • android: add subtitleStyle.subtitlesFollowVideo prop to control subtitles positionning (#4133) (2fa6c43)
  • android: hide surfaceView for loading time when shutter is hidden (#4060) (65faba3)
  • expo-plugin: adding bg mode if none exist yet (#4126) (451806c)
  • ios: Add handler for Earpods play/pause command (#4116) (9c38d9f)
  • ios: build fail due to an unwrapped value (#4101) (0a1085c)
  • ios: ensure behavior is correct with empty text track list (#4123) (3a32d67)
  • ios: ensure we don't disable tracks when not necessary (causes black screen) (#4130) (89df9d6)
  • ios: fix onBandwidth update event (old ios api is deprecated and doens't work) (#4140) (d6bae3c)
  • sample: update dependencies to fix local asset playback (#4121) (7a2b401)
  • set does not have find method (#4110) (7db7024)
  • tvos: fix build (and update sample) (#4134) (688d98d)
  • VisionOS: do not access to isExternalPlaybackActive on VisionOS (#4109) (0576eac)

Features

  • add ads localize (#4113) (703ed43)
  • android: Support Common Media Client Data (CMCD) (#4034) (ca795f2)
  • android: support hiding Exoplayer video duration on android (#4090) (41e2bed)
  • Correct isBehindLiveWindow Error Handling (#4143) (22c21ad)

6.4.5 (2024-08-17)

Bug Fixes

  • android: resolve a release issue with DefaultDashChunkSource (#4097) (7e222e8)

  • refactor(android): migrate DefaultDashChunkSource to Kotlin (#4078) (b7d1cabf)

  • fix(ios): remove resume logic in notification seek closure (#4068) (c6ae17e4)

  • chore(doc): update document (props & method) (#4072) (cd41a1b2)

  • fix(android): build warnings (#4058) (899bb822)

  • infra: update feature request form (#4065) (6c03d0a7)

  • fix(ios): override source metadata with custom metadata (#4050) (38aa2b05)

  • fix(android): return the value as a float for the getCurrentPosition function (#4054) (af0302b1)

  • refactor(android): migrate ReactExoplayerViewManager to Kotlin (#4011) (74c6dd62)

  • fix(android): viewType is ignored when its value is ViewType.TEXTURE (#4031) (22cfd6ce)

  • fix(ios): metadata update race (#4033) (08a57a3b)

  • fix(ios): updated getLicense call to work with new syntax, and fixed spelling error (#4014) (#4042) (2348c5e4)

6.4.3 (2024-07-24)

Bug Fixes

Features

  • add ability to define poster props as Image type and render poster as custom component (#3972) (adbd06e)
  • android: add error handling for Kotlin version (#4018) (6189080)
  • android: set originalFitsSystemWindows on fullscreen open (#4013) (2f70c02)

6.4.2 (2024-07-15)

Bug Fixes

  • android: exit fullscreen mode after finishing video playback (#3978) (4b8d09e)
  • android: fix android notification controller order (#4002) (05623c9)
  • android: fix onVideoLoad event field key (#4001) (f82268b)
  • android: handle aspect ratio for rotated videos (#4000) (0a55ace)
  • android: resolve compatibility issue (5cd5e5e)
  • example/basic: select resizeMode (#3989) (39cf477)
  • ts: make multiDrm prop optional type (#3999) (79c3076)

6.4.1 (2024-07-12)

Bug Fixes

  • expo plugin export (#3992) (de8ade0)

  • fix(ios): remove pip check for other platforms (#3991) (40a72825)

  • feat: add isSeeking to onPlaybackStateChanged (#3899) (111a5d21)

  • chore(android): migrate DataSourceUtil to Kotlin (#3984) (b25e43ee)

  • chore(android): migrate AspectRatioFrameLayout to Kotlin (#3985) (452e42f1)

  • refactor: move view type and drm in source (#3867) (66dcf32b)

  • feat: add expo plugins (#3933) (08f6caa6)

  • docs: update deprecated tool (#3982) (25c74e05)

  • chore(android): migrate DefaultReactExoplayerConfig to Kotlin (#3983) (1728373d)

  • fix(ios): don't pause playback when entering background (#3973) (ccffcfd7)

  • chore(example/basic): refactor state variable (#3949) (a3ecc010)

  • feat(android): Bump default media3 version from v1.1.1 to v1.3.1 (#3977) ⚠️ need targetSdkVersion 34 (7562669f)

  • feat: modified Fabric example android build.gradle for resolving build issue (#3976) (1d6fb297)

  • chore: upgrade react-native & expo version in the basic example app (#3964) (01a00b12)

  • refactor(android): migrate VideoEventEmitter to Kotlin (#3962) (3c9b1b57)

  • fix(ios): fix fullscreen view controller ANR (#3952) (7def3ac3)

  • chore(example/fabric): bump up fabric example android deps (#3957) (de6e7196)

  • refactor(ios): refactor NowPlayingInfoCenerManager.swift (#3968) (76c63291)

  • fix(android): build issue on the latest react-native version (#3963) (530686ca)

  • feat(fabric): updated ios podspec for implementing new architecture (#3961) (df29c231)

  • fix(android): fix wrong module name (#3959) (3f11894c)

  • refactor(android): migrate ReactVideoPackage to Kotlin (#3955) (702a0d9d)

  • refactor(android): migrate VideoDecoderPropertiesModule to Kotlin (#3954) (99585987)

  • feat: bump up fabric example react-native iOS (#3951) (e5a2ee3b)

  • fix(android): added setAllowChunklessPreparation to HlsMediaSource.Factory to allow build success on projects without HLS support (#3948) (#3950) (322d7e99)

  • refactor: basic example from class component to functional component (#3934) (d4f16486)

  • chore(android): rework view type (#3940) (b431d09e)

  • chore: update homepage field in package.json (#3945) (6e133768)

  • feat(android): allow building exoplayer from source (#3932) (a7d834a8)

  • feat: add plugins management (#3909) (91d27a60)

  • Chore(docs): fix typo (#3938) (3cfb96ad)

6.3.0 (2024-06-22)

Bug Fixes

  • android: allow chunk less preparation (#3913) (264b57a)
  • android: avoid crash multiplayer with notification (#3931) (104ee70)
  • android: show controls in notification on older androids (#3886) (098a754)
  • android: use UI thread to pause when lost audio focus (#3916) (856b1dd)
  • ios: crash on ads after leaving the app (#3911) (3d6bc94)
  • ios: missing notification controls when enabled from start (#3898) (2d793db)
  • JS: safety check on resolve uri (#3915) (84bb910)
  • typescript: type checks on selectedTextTrack, selectedAudioTrack, selectedVideoTrack (#3910) (dc2a2ab)

Features

  • android: add onControlsVisiblityChange (#3925) (c2ce372)
  • ios: add live key to now playing dict to decorate when livestream playing (#3922) (91751ab)

6.2.0 (2024-06-07)

Bug Fixes

  • android: allow notification tap to foreground app (#3831) (5c29b48)
  • android: android cache header (#3832) (c2a1424)
  • android: fix null pointer exception at playback start with item metadata (#3879) (c2cd752)
  • android: optimize lag on old android (#3860) (c2ce66e)
  • android: refactor source, fix random DRM issue and crop start on local asset (#3835) (bdf3e55)
  • android: video resolution orientation android (#3862) (b698b18)
  • ensure progress is sent before onEnd callback (#3872) (7133c96)
  • ensure view drop stop playback startup (#3875) (ff1e24a)
  • ios: don't crash app if view wasn't found (#3841) (cd28d37)
  • ios: fix notification controls enabled by default (#3861) (5c6dfb2)
  • ios: fix playback status with lifecycle (#3819) (1b51c15)
  • ios: Implicit use of 'self' in closure - use 'self.' to make capture semantics explicit (#3764) (#3881) (ac0a9c3), closes #3875

Features

  • add getCurrentPosition to component's ref (#3824) (c7f4d7b)
  • android: allow chunckless preparation (#3882) (d4a8c24)
  • android: Change subtitleLayout from child to sibling of layout (#3830) (c2cc917)
  • android: handle increment forward and rewind buttons (#3818) (5059e7a)

6.1.2 (2024-05-23)

Bug Fixes

  • android: revert previous fix not compatible with old java version (#3828) (69bde44)

6.1.1 (2024-05-22)

Bug Fixes

Features

  • android: change default user agent value (#3813) (089dc7e)

6.1.0 (2024-05-22)

Bug Fixes

  • 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)

Features

  • add setVolume function to component's ref (#3794) (3cd7ab6)
  • android: add possibility to hide seekBar (#3789) (95e6140)

6.0.0 (2024-05-14)

Bug Fixes

6.0.0-rc.2 (2024-05-13)

Bug Fixes

Features

  • android: make buffering strategy dynamic (#3756) (e420418)

Reverts

  • Revert "fix(android): video flickering add playback start (#3746)" (#3748) (d25629b), closes #3746 #3748

6.0.0-rc.1 (2024-05-08)

Bug Fixes

  • 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)

Features

Performance Improvements

  • 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)

Bug Fixes

  • 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)

Features

  • android: allow to disable selected functionalities (#3681) (64e3191)

6.0.0-beta.8 (2024-04-03)

Bug Fixes

6.0.0-beta.7 (2024-03-30)

Bug Fixes

  • 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)

BREAKING CHANGES

  • android: move backBufferDurationMs from root props to bufferConfig

6.0.0-beta.6 (2024-03-18)

Bug Fixes

Features

  • 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)

Bug Fixes

Features

  • implement onAudioTracks and onTextTracks on ios (#3503) (6a49cba)

Reverts

  • Revert "fix: remove pausePlayback when audio focus loss event (#3496)" (#3504) (aec7db6), closes #3496 #3504

6.0.0-beta.4 (2024-01-15)

Bug Fixes

  • 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)

Features

  • 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)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Features

  • 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)
  • android: fix leak caused by removing lifecycle listener too early (#3380)

6.0.0-beta.0 (2023-11-18)

Bug Fixes

  • 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)

Features

  • android: replace deprecated ExoPlayer2 with AndroidX media3 (#3337) (f2e80e9)

6.0.0-alpha.11 (2023-11-15)

Bug Fixes

6.0.0-alpha.10 (2023-11-13)

Bug Fixes

  • 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)

Features

Changelog

Next

  • Android, iOS: add onVolumeChange event #3322
  • iOS: Externally loaded text tracks not loading properly #3461

Version 6.0.0-alpha.9

  • 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

Version 6.0.0-alpha.8

  • 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

Version 6.0.0-alpha.7

  • All: clean JS warnings (#3183)
  • Android: Add shutterView color configurtion (#3179)
  • Android: React native 0.73 support (#3163)
  • Android: Fix memory leaks from AudioManager #3123
  • Android: Fixed syntax error #3182
  • iOS: Fix freeze at playback startup (#3173)
  • iOS: Various safety checks (#3168)

Version 6.0.0-alpha.6

  • 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

Version 6.0.0-alpha.5

  • 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

Version 6.0.0-alpha.4

  • 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] (#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

Version 6.0.0-alpha.3

Version 6.0.0-alpha.2

  • 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] (#2639)
  • Fix IOS UI frame drop on loading video [#2848] (#2848)

Version 6.0.0-alpha.1

  • 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

Version 6.0.0-alpha.0

  • 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 the shutterView 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 match bridge.eventDispatcher() #2720

Version 5.2.0

  • Fix for tvOS native audio menu language selector
  • Update ExoPlayer to allow pre-init and content clear [#2412] (#2412)
  • iOS rate is reset to 1.0 after play/pause [#2167] (#2167)
  • Upgrade ExoPlayer to 2.13.2 [#2317] (#2317)
  • Fix AudioFocus pausing video when attempting to play [#2311] (#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 a EXT-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 with UIManager.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

  • Support sidecar text tracks on iOS #1109
  • Support onAudioBecomingNoisy on iOS #1131

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