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.8.2] - 24-08-21
Changed
- Modified the poster behavior on iOS and Android to remain visible until the first frame is displayed.
[7.8.1] - 24-08-14
Fixed
- Fixed an issue on Android where the notification background would be displayed in low resolution on recent Android versions.
Added
- Added support on iOS for 'album' and 'artist' in the nowPlayingInfo.
[7.8.0] - 24-08-09
Added
- Added shouldResumeAfterInterruptions to the BackgroundAudioConfiguration which toggles playback resume after an interruption (e.g. phone call) on the lockscreen.
- Added the option to set a nil source on the iOS Bridge, to 'unset' the previous source.
- Added the fast-forward & rewind buttons for the Android notification when
mediaControl.mediaSessionEnabled
is set totrue
. - Added a
mediaControl.convertSkipToSeek
player config property to allow seeking with theNEXT
andPREVIOUS
media buttons. Its default value isfalse
.
Fixed
- Fixed an issue where the Lockscreen showed enabled controls when the player has no valid source.
- Fixed an issue on Android where the notification would not disappear when setting an undefined source.
Changed
- Replaced the
MediaBrowserService
with a regularService
to facilitate background playback on Android.
[7.7.1] - 24-07-29
Fixed
- Fixed an issue on tvOS where native cache functionality was not excluded correctly resulting in build errors.
[7.7.0] - 24-07-25
Added
- Added ActiveQualityChanged event support for iOS.
Fixed
- Fixed an issue where on iOS a cached asset would not play when setting the tasks's source on the player.
- Fixed an issue where on iOS the createTask method (CacheAPI) was not returning the created task.
- Fixed an issue where on iOS the Ad and AdBreak protocols where extended in the underlying native SDK and required some modifications.
- Fixed an issue where on Android the native module preparation would fail due to a change in the Android SDK 7.8.0 on eventDispatching.
[7.6.0] - 24-07-01
Added
- Added
'root'
as an alternative id for the root div element in Web applications, supporting fullscreen presentation mode in Expo-based apps. - Added
renderingTarget
property toTHEOplayer
API for Android, enabling the option to choose between either rendering to aSurfaceView
(default) orTextureView
.
Changed
- Lowered the required node version to v16+.
[7.5.1] - 24-06-20
Added
- Added ad event support for custom SSAI integrations.
[7.5.0] - 24-06-18
Fixed
- Fixed an issue where the Cast API wouldn't be initialized yet when in the
onPlayerReady
callback. - Added support for THEOplayer Android v7.6.0.
[7.4.0] - 24-06-11
Added
- Added support for
SourceDescription.poster
for Android & iOS. - Made the intervals for the forward and backward skip buttons on the iOS lockScreen configurable.
- Added preferredPeakBitRate and preferredMaximumResolution to ABRConfiguration for iOS
[7.3.0] - 24-06-03
Changed
- Disabled skip forward/backward remote control buttons by default for Live content on Android TV platforms.
Added
- Added support for React Native 0.74 and upgraded the example application to depend on
react-native-tvos
0.74.1.
Fixed
- Fixed an issue where on the iOS bridge the wrong value was extracted from the CachingParameters to configure the bandwidth setting on the MediaCache.
[7.2.0] - 24-05-12
Added
- Added
resize
player event enabling monitoring of player resizes. - Added
width
andheight
properties toTHEOplayer
containing the player's current dimensions in pixels. - Added the possibility to set the player volume on iOS programmatically via the player API.
- Added
AD_CLICKED
,AD_TAPPED
,AD_ICON_TAPPED
andAD_ICON_FALLBACK_IMAGE_CLOSED
ad events for Android platforms.
Fixed
- Fixed an issue on Android where the
scheduledAdBreaks
list did not include the pre-roll ad on play-out of a Google DAI stream.
[7.1.1] - 24-04-26
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.