Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
[7.1.1] - 26-04-23
Fixed
- Fixed an issue where the selectedAudioTrack and selectedVideoTrack were not in sync with the actual selected mediatracks on the native player.
[7.1.0] - 24-04-23
Fixed
- Fixed a build issue on tvOS example app due to the deprecated
prepare
method.
Added
- Added multiple configuration options to
GoogleImaConfiguration
for both iOS and Android. These map to the corresponding IMASettings from the underlying native Google IMA SDKs. - Added
skipForwardInterval
andskipBackwardInterval
properties toMediaControlConfiguration
for Android and Web, enabling configurable skip intervals for media sessions. - Added ios bridging code to make 'forced' property available from native iOS TextTrack API.
Removed
- Removed support for the web-based native iOS SDK on the RN iOS Bridge.
[7.0.0] - 24-04-10
Fixed
- Fixed an issue where the player had the wrong layout in fullscreen presentationMode, after changing the source.
- Fixed an issue where not enabling autoplay would explicitly pause the stream, reverting a possible play() request right after setting up the source.
Added
- Added support for THEOplayer native SDK 7.0.
- Aligned SDK major version with native player SDKs.
Changed
- Raise minimal ios deployment target to 13.4, to match react native 0.73's minimal deployment target
[3.10.3] - 24-03-22
Fixed
- Fixed a crash on iOS when playing an IMA Ad after reparenting the THEOplayerView to a different native Viewcontroller.
[3.10.2] - 24-03-22
Changed
- Downgraded default
androidx.core:core-ktx
dependency version to support Android target sdk 33.
[3.10.1] - 24-03-19
Changed
- Updated ios sdk version to 6.12.1
[3.10.0] - 24-03-15
Changed
- Updated dependencies and example app to support ReactNative v0.73.
- Updated ios sdk version to 6.11
Fixed
- Improved NowPlayingInfo updates for iOS by setting playbackRate on pause/playing events and processing the final info on player desctruction.
- Fixed an issue with misinterpretation of
targetVideoQuality = 0
(use video track withuid == 0
) astargetVideoQuality = undefined
(use ABR across all video qualities). - Fixed an issue where the
srclang
property of atextTrack
passed to aSourceDescription
would not be parsed on Android.
Added
- Added an optional
THEOplayer_reparent_on_fullscreen
build property on Android to disableTHEOplayerView
reparenting when transitioning to fullscreen presentation mode.
[3.9.2] - 24-03-06
Changed
- Never pause play-out when losing audio focus while playing an advertisement.
[3.9.1] - 24-03-05
Changed
- Bumped google-cast-sdk dependency to v4.8.0 for iOS.
[3.9.0] - 24-03-04
Changed
- Reduce audio volume (duck) on Android when another app gains transient audio focus and ducking is allowed. In other cases the player will pause, and optionally resume if the audio focus loss was transient.
Fixed
- Fixed an issue on iOS where the lockscreen controls and displayed asset metadata would remain visible after the player has been destroyed.
- Fixed an issue on iOS where the castState was not initialized correctly.
[3.8.0] - 24-02-23
Changed
- Renamed native modules to avoid name collisions with external packages.
Added
- Added
adbreakbegin
andadbreakend
events for Google IMA on Android. - Added
liveOffset
property toPlayerConfiguration
, allowing to set a custom offset from the live point. - Added a second, alternative config filename to the iOS podspec setup to prevent a react-native-theoplayer module resolving clash.
[3.7.1] - 24-02-09
Fixed
- Fixed a dependency issue on iOS when using chromecast or Google IMA features.
[3.7.0] - 24-02-09
Added
- Added fullscreen presentation mode support for iOS and Android. More info on the documentation page.
[3.6.0] - 24-02-02
Fixed
- Fixed a build issue on the iOS bridge caused by the deprecated DispatchDispatch protocol.
- Fixed an issue on Android where the
MediaPlaybackService
would sometimes crash with aForegroundServiceDidNotStartInTimeException
exception.
Added
- Added the ability to override both small and large notification icons in Android with
ic_notification_small
andic_notification_large
resources respectively.
[3.5.0] - 24-01-30
Added
- Added the ability to toggle
keepScreenOn
on Android. By default, screen timeout is disabled while the player is visible.
[3.4.2] - 23-12-22
Fixed
- Fixed an issue in the Expo plugin for Android where it would fail to execute when no properties are passed.
[3.4.1] - 23-12-21
Changed
- Take the Kotlin Gradle plugin version from the root project, if specified.
[3.4.0] - 23-12-21
Added
- Added
ui
configuration object toPlayerConfiguration
to configure the ads UI language. - Added support for Android 14.
- Added Expo plugin to support Android dependency configuration.
Changed
- Changed the Android notification channel name to
Notification channel
. It can be renamed by defining thenotification_channel_name
resource string.
[3.3.2] - 23-12-12
Fixed
- Fixed an issue on iOS & Android where timestamps in ad events were not consistently defined in seconds.
- Fixed an issue on tvOS where unknown AdIntegrationKind values resulted in build issues.
[3.3.1] - 23-12-11
Fixed
- Fixed an issue on Android where a
ContentResumeRequested
ad event was never broadcasted. - Fixed an issue on iOS where the ad duration was provided in milliseconds instead of seconds.
[3.3.0] - 23-12-11
Changed
- Extended event dispatching mechanism with broadcast functionality.
[3.2.1] - 23-12-07
Fixed
- Fixed an issue on Android where
EnterCue
andExitCue
text track events did not contain thetrackUid
property.
[3.2.0] - 23-11-29
Fixed
- Fixed an issue on iOS and Android were selecting an audio, video or text track that has a
uid
with value0
, would fail.
Added
- Added support for HLS #EXT-X-DATERANGE timed metadata tags. The tags appear as cues in a dedicated text track with type
daterange
.
[3.1.0] - 23-10-27
Changed
- Revised audio focus protocol on Android. When resuming an app, audio focus is retrieved only if the player is not paused.
- Changed the behaviour of the Android component supporting background playback. It is stopped but not disabled when setting
backgroundAudioConfiguration.enabled = true
.
Fixed
- Fixed an issue on Android where during play-out of a locally stored media asset the
seekable
property would not update. - Fixed an issue on iOS where the error was not forwarded to theoplayer if a drm request fails on the iOS bridge
[3.0.2] - 23-10-17
Fixed
- Fixed an issue on Android where compilation would fail when depending on player SDK 6.2.0.
[3.0.1] - 23-10-12
Fixed
- Fixed compilation issues caused by Caching API not being supported on tvOS
[3.0.0] - 23-10-06
Fixed
- Fixed sourceDescription processing on iOS for offline playback.
Changed
- Added support for THEOplayer 6.0. See THEOplayer's changelog for details.
- Bumped minimal version for SideloadedTextTracks connection on iOS to v6.1.1 which contains fix for iOS 17.0.
Added
- Added
MediaCache
API, enabling download of media assets for offline playback.
[2.16.1] - 23-09-27
Added
- For iOS, added a subtitlePTS property to the TextTrackDescription that syncs a sideloaded textTrack with the video content.
[2.15.0] - 23-09-26
Changed
- Upgraded the iOS side-loaded text track connector.
Fixed
- Fixed an issue where the Android mediaSession connector would still process media button events when the app was in the background, and
enableBackgroundPlayback
was false. - Fixed an issue on Android where play-out would still start when the app was put to the background during initial buffering, and
enableBackgroundPlayback
was false. - Fixed an issue on Android where the MediaButtonReceiver would crash the app when it did not find a registered MediaBrowserService instance, when setting
enableBackgroundPlayback
to false while backgrounding the app.
[2.14.0] - 23-09-25
Fixed
- Fixed an issue on Android where the MediaButtonReceiver would crash the app when it did not find a registered MediaBrowserService instance.
Added
- Added support for side-loaded metadata tracks on iOS.
[2.13.0] - 23-09-15
Fixed
- Fixed an issue where setting a new source on iOS, during DRM handling, would crash the application due to unsafe array access by different threads.
[2.12.1] - 23-09-14
Fixed
- Fixed an issue on Android where the player SDK dependency could resolve to version 6.+.
- Fixed an issue on iOS where the player integration dependencies could resolve to version 6.+.
[2.12.0] - 23-09-04
Added
- Added an
AnalyticsDescription
property toSourceDescription
to configure additional source-specific properties for analytics connectors. - Added support for sideloaded webVTT and SRT texttracks on iOS.
- Added Audio Focus for Android, pausing play-out on audio focus loss and resuming play-out once focus has been regained.
- Added Audio Focus and Audio Becoming Noisy manager for Android.
Fixed
- Fixed an issue on Android that would cause the player not to reset when setting an empty source.
- Fixed an issue where a text track cue was not properly removed from the cue list on a TextTrackEventType.REMOVE_CUE event.
- Fixed an issue on tvOS that allowed the user to pause a CSAI ad using the apple remote control.
- Fixed an issue on iOS where the cue event listeners were not cleanup up when destroying the player instance, resulting in memory build-up.
[2.11.0] - 23-08-10
Added
- Added DAI support through iOS Native pipeline, using new THEOplayerGoogleIMAIntegration functionality
- Added
TextTrackStyle
API for iOS and Android.
Fixed
- Fixed an issue on Android where the player would sometimes crash when requesting the current active video track.
Changed
- Switched to 'displayIconUri' in sourceDescription.metadata as primary field for artwork selection in NowplayingInfo/MediaSession, 'poster' in sourceDescription is now the fallback.
- Removed the play/pause icon in the PiP window on Android while playing an ad.
[2.10.0] - 23-07-25
Fixed
- Fixed an issue on Android where the media button receiver would not accept button events in case multiple receivers are registered.
- Fixed an issue on Android where
react-native-theoplayer
would not build when depending on Android player SDK v5.6.0. - Fixed an issue on Android where a
pause
event would not be dispatched when putting the app to the background during play-out of an ad, while background playback is enabled. The ad would also restart when bringing the app back to the foreground.
Changed
- Removed restrictions on media session playback actions for AndroidTV.
- Upgraded
react-native
version of the example app toreact-native-tvos@0.71.12-0
.
Added
- Added a
version
property toTHEOplayer
for querying theplayer
version (e.g.,'5.5.0'
) andplayerSuite
(e.g.,'2023.3.0'
) versions.
[2.9.0] - 23-06-16
Changed
- Moved React Native UI to separate
@theoplayer/react-native-ui
package.
Removed
- Removed
react-native-theoplayer
dependencies on packages@react-native-community/slider
,react-native-google-cast
,react-native-svg
,react-native-svg-web
,react-native-url-polyfill
andurl-polyfill
.
Added
- Added an overview of the available React Native connectors.
Fixed
- Fixed an issue on Android where the background media service would crash the app in case it was started from the background.
- Fixed an issue on iOS where the delayed contentId extraction resulted in an incorrect value being passed to the license request setup.
[2.8.0] - 23-06-01
Added
- Added
ignoreAvailabilityWindow
property toSourceDescription.dash
for Android and Web. - Added
needsTimescaleShifting
,desiredTimescale
andforceSeekToSynchronize
properties toSourceDescription.dash
for Web.
Fixed
- Fixed an issue where text track cue changes were not applied to the TextTrack's
cue
property. - Fixed an issue on Android where play-out of an MP4 stream would sometimes crash the player.
- Fixed an issue on Android where a
pause
event would not be dispatched while pausing during play-out of an ad. - Fixed an issue on Android where hardware buttons, such as
play
andpause
, were not handled anymore after toggling background audio support. - Fixed an issue on Android where the app would crash when toggling background playback while multiple
MediaBrowserServiceCompat
instances are registered.
Changed
- Improved fullscreen support to use non-native fullscreen on Safari for iPad and Mac.
- Limited the set of available media session actions on Android when an ad or live stream is playing.
- Removed pausing the stream when disabling background playback on Android.