Changelog
π 7.8.0 (2024/07/15)β
Webβ
β¨ Featuresβ
- Added
MultiViewPlayer.ui
to access the UI of a multiview player.
π Issuesβ
- Fixed
MultiViewPlayer.destroy()
to not remove the original container element from the DOM. - Updated
MultiViewPlayerLayout
in the TypeScript type definitions to be a string union instead of an enum. - Fixed an issue on older browsers (such as Samsung Tizen 2.4) where the player failed to load when
Symbol.iterator
is not defined. - Fixed an issue on Tizen where seeking backwards after the stream ended could cause the player to be stuck in a playback loop and not ending again.
- Fixed an issue where Google IMA midroll and postroll ads were not preloaded.
Androidβ
π Issuesβ
- Fixed an issue where audio played on the phone instead of the connected headset after stopping Chromecast.
- Fixed an issue where the play/pause button was not working in a PiP window when targeting API 34 (or Android 14).
- Fixed an issue where caching sources would cause a runtime crash.
π Deprecationsβ
- Jitpack.io is now deprecated in favor of the THEOplayer Maven repository. Starting from 8.0 we will no longer publish new versions of the THEOplayer Android SDK or connectors to Jitpack.
iOSβ
β¨ Featuresβ
- Added
player.ads.registerServerSideIntegration()
API for registering custom server-side advertisement integrations. This API is currently experimental.
π 7.7.1 (2024/07/09)β
Webβ
π Issuesβ
- Fixed a regression where DASH playback could stall indefinitely after an HTTP request timed out on older browsers without
fetch()
.
Androidβ
π Issuesβ
- Fixed an issue where playback was not restoring after a poor network connection.
π 7.7.0 (2024/07/01)β
Generalβ
β¨ Featuresβ
- Added the ability in HLS to disable the video track (or audio track) on any stream, in order to play audio-only (or video-only).
π Issuesβ
- Fixed an issue where for LL-HLS a race condition could potentially throw the error 'Internal error: attempted to download an incomplete segment'.
- Fixed an issue where the player could sometimes stall while playing an HLS stream with rounded
#EXTINF
durations.
Webβ
π Issuesβ
- Fixed a regression where the player would throw an "Invalid UTF-8 detected" error when loading an HLS stream on an older browser without
fetch()
support and when using a network response interceptor.
Androidβ
β¨ Featuresβ
- Added support for caching MP4 videos.
π Issuesβ
- Fixed an issue where audio and text tracks restored to default when starting or stopping casting.
- Fixed an issue where media tracks were not updated after changing source while casting to Chromecast
- Fixed an issue where player paused when going to a fullscreen view during an IMA ad.
iOSβ
β¨ Featuresβ
- Added ActiveQualityChangedEvent which is fired by a MediaTrack when its activeQualityBandwidth property value changes.
π 7.6.1 (2024/06/26)β
Generalβ
π Issuesβ
- Fixed an issue where the player could sometimes stall while playing an HLS stream with rounded
#EXTINF
durations.
π 7.6.0 (2024/06/18)β
Webβ
π Issuesβ
- Fixed a memory leak where an
<iframe>
created by the Google DAI integration was not properly removed after callingplayer.destroy()
. - Fixed a performance issue with segment downloads on WebOS 5.x and below and Tizen.
- Fixed an issue where the player would sometimes stall after switching to a very short period in a multi-period DASH stream.
Androidβ
β¨ Featuresβ
- Added
player.ads.registerServerSideIntegration()
API for registering custom server-side advertisement integrations. This API is currently experimental.
π Issuesβ
- Fixed an issue where the player would sometimes crash on ad play-out completion.
- Fixed an issue where Google IMA ads were not preloaded when using
AdsRenderingSettings.enablePreloading
. - Fixed an issue where setting preload to
PreloadType.AUTO
would cause the player to always autoplay if the source contained Google-IMA pre-roll ads. - Fixed an issue where the player would show the first frame of the content before playing a Google-IMA pre-roll ad if preload type
PreloadType.AUTO
was selected. - Fixed an issue where the player would appear stuck if you changed the source during Google-IMA ad playback.
- Fixed an issue where a source change could trigger a crash on some Android devices.
- Fixed an issue where a media track could not be enabled in its
ADDTRACK
event listener.
π 7.5.0 (2024/06/04)β
Generalβ
β¨ Featuresβ
- Added
HlsPlaybackConfiguration
flagdelaySubtitlePreload
to delay preloading of subtitles until after video/audio for HLS streams, to work around an issue on MediaTailor streams where no ads are provided when loading subtitles concurrently.
Webβ
π Issuesβ
- Fixed an issue where the player's seekable range would be incorrect when casting an HLS stream to Chromecast V2.
- Fixed an issue where the player's currentTime was not updated after changing the source to an HLS stream while casting to a CAF receiver.
- Fixed an issue where the player would stall indefinitely when seeking into a discontinuity misalignment.
Androidβ
π Issuesβ
- Fixed an issue where adding more than one integration on Android 7 (API level 24) caused a crash.
iOSβ
π Issuesβ
- Fixed an issue where the airplay state would be incorrect after killing and re-instantiating a player instance whilst connected to an AirPlay device.
- Fixed an issue where a downloaded mp4 on iOS would be evicted right after the download finishes.
π 7.4.1 (2024/05/27)β
Generalβ
π Issuesβ
- Fixed an issue where incomplete
ServiceDescription
tags in a DASH stream would prevent the player from being able to load the manifest.
Androidβ
π Issuesβ
- Fixed an issue where streams with Google DAI SSAI would not start playing.
π 7.4.0 (2024/05/21)β
Generalβ
π Issuesβ
- Fixed an issue with the ABR algorithm for HLS on devices that do not report the total segment byte size during the download.
Webβ
β¨ Featuresβ
- Added support for managing low-latency live playback for HLS and DASH streams via
player.latency
. - Added support for LL-DASH
ServiceDescription
elements, used as the defaultplayer.latency
configuration for LL-DASH live playback. - Added
player.ads.registerServerSideIntegration()
API for registering custom server-side advertisement integrations. This API is currently experimental.
π Issuesβ
- Fixed an issue where IMA post-roll ads would be preloaded too early. The post-rolls for VMAPs can now only be preloaded if
player.preload
is set to at least"metadata"
.
Androidβ
β¨ Featuresβ
- Exposed the focus() method on GoogleImaIntegration and GoogleDaiIntegration to allow moving the focus on interactive elements.
iOSβ
β¨ Featuresβ
- Added
resizeTransitionEnabled
API on THEOplayer to control whether to enable or disable the transition animation when resizing the player. - Introduced
activeQualityBandwidth
property forMediaTrack
. This API can be used to get the current video track quality's bandwidth value. - Introduced
TrackUpdateEvent
event alongsideTrackEventTypes
. This event can be listened to through aMediaTrack
'saddEventListener
method.
π Issuesβ
- Fixed an issue where returning from picture-in-picture to the application when in the background would cause the player to pause.
- Fixed an issue where
PLAYING
andPAUSE
events would not fire during IMA ads when using the native picture-in-picture buttons. - Fixed an issue where seeking beyond the duration of an asset would not trigger an
ended
event, would keep incrementing the currentTime and block the viewer from restarting playout from scratch.
π 7.3.0 (2024/05/07)β
Webβ
π Issuesβ
- Fixed an issue where the player will stutter on playback when starting to Chromecast.
- Fixed an issue where the player would sometimes only enable audio when casting a DASH stream to Chromecast v2.
Androidβ
β¨ Featuresβ
- The Android SDK is now also published to
maven.theoplayer.com/releases
. - Added experimental support for setting a custom
Surface
to render the content into.
π Issuesβ
- Fixed an issue where content started playing behind the advertisement if IMA and DAI integrations were used simultaneously.
- Fixed an issue where no
ended
event is fired when reaching the end of a stream on a Chromecast receiver.
iOSβ
β¨ Featuresβ
- Added support for sideloaded text tracks on Chromecast.
π 7.2.0 (2024/04/23)β
Generalβ
β¨ Featuresβ
- Added support for setting a liveOffset for HLS live streams.
Webβ
β‘ Improvementsβ
- Added some improvements for handling of the license requests on Tizen 2.4.
π Issuesβ
- Fixed an issue in the HLS pipeline where the currentProgramDateTime would briefly return an incorrect value after switching qualities.
- Fixed an issue where sometimes the player would do an incorrect seek on WebOS 5.X.
Androidβ
β¨ Featuresβ
- Added support for sideloaded WebVTT TextTracks on Chromecast.
β‘ Improvementsβ
- Updated the Google IMA dependency from 3.32.0 to 3.33.0.
iOSβ
β¨ Featuresβ
- Added
TextTrack.forced
API to indicate whether the track contains Forced Narrative cues.
π 7.1.1 (2024/04/15)β
Generalβ
π Issuesβ
- Fixed an issue where setting preload to auto and autoplay would result in an endless spinner for HLS live streams.
Androidβ
π Issuesβ
- Fixed an issue where the player would crash when removing the Google IMA integration in response to the
ended
event.
iOSβ
π₯ Breaking Changesβ
- Increasing minimum IMA SDK supported version to 3.18.5.
π 7.1.0 (2024/04/10)β
Generalβ
β¨ Featuresβ
- Added the option to enable tracks immediately after the track is added for HLS streams.
Webβ
β¨ Featuresβ
- Added support for adaptation set switching.
π Issuesβ
- Fixed an issue where active tracks were not consistent between Chromecast sender and receiver.
- Fixed an issue where ABR would not work for some streams on Safari.
- Fixed an issue where the click-through button for Google DAI was not clickable on mobile devices.
Androidβ
β¨ Featuresβ
- Added support for adaptation set switching.
π Issuesβ
- Fixed an issue where stream is paused when starting casting.
- Fixed a rare issue where the player would periodically stall due to failing requests on certain networks.
- Fixed a memory leak where the player would unintentionally keep some segments in memory for long periods of time.
iOSβ
π Issuesβ
- Fixed an issue where calling
Ads.scheduledAdBreaks
with IMA/DAI integrations would return an empty list.
π 7.0.0 (2024/04/03)β
Officially announcing THEOplayer 7.0β
Introducing a major version bump to THEOplayer 7.0. This version officially releases all the improvements and developments THEOplayer has achieved since version 6.0.
THEOplayer 7.0 is backwards compatible for most features but includes some breaking changes per SDK. Please review them carefully in the respective changelog for your SDK.
-
Further improvements to accelerate monetization of your FAST/AVOD service by enabling seamless THEO Ads integration on Chromecast CAF (v3) receivers. (Currently available on Web)
-
A smaller and more efficient Android and iOS player thanks to refactorings and further modularization.
-
Added experimental support for using
ManagedMediaSource
in iOS Safari. This brings MPEG-DASH and HESP support to iOS, along with manual quality selection for HLS streams. (Requires iOS 17.1 or higher.) -
Added conformance to Apple's new privacy policy for API usage.
-
Performance optimizations to help our React Native and Flutter SDKs run smoothly on all devices.
Generalβ
π₯ Breaking Changesβ
- Changed the Chromecast default app ID on all platforms to our THEOplayer Chromecast CAF receiver with app ID
8E80B9CE
. If you prefer the previous default web behavior which uses our Chromecast V2 receiver, you can set theChromecastConfiguration.appID
to1ADD53F3
. For our Android and iOS SDKs, we officially only support Chromecast CAF receivers. If you prefer to use the default Google Chromecast CAF receiver instead, you can set the app ID toCC1AD845
. - In an effort to align with the changes made by Apple regarding the App Store publishing policy, starting from THEOplayer 7.0 we will distribute our SDK builds using Xcode 15. Effectively, this means that developing a client application using THEOplayer iOS/tvOS SDK will require a minimum version of Xcode 15.
π Issuesβ
- Fixed an issue where setting
liveOffset
on a DASH source would be ignored ifsuggestedPresentationDelay
was specified in the manifest.
Webβ
β¨ Featuresβ
- Added THEOlive support as a feature to THEOplayer.
Androidβ
π₯ Breaking Changesβ
- Removed unused
RequestCallback
interface. - Removed deprecated asynchronous
Player
APIs in favor of the respective synchronous ones. - Removed deprecated
GoogleImaIntegrationFactory#createGoogleImaIntegration
APIs. - Removed deprecated
GoogleDaiIntegrationFactory#createGoogleDaiIntegration
APIs. - Removed deprecated
CastIntegrationFactory#createCastIntegration
API. - Removed deprecated
THEOplayerSettings#isFullScreenOrientationCoupled()
in favor ofFullScreenManager#isFullScreenOrientationCoupled()
. - Removed deprecated
THEOplayerSettings#setFullscreenOrientation(@ScreenOrientation int)
in favor ofFullScreenManager#setFullscreenOrientation(@ScreenOrientation int)
. - Removed deprecated
THEOplayerSettings#getFullscreenOrientation()
in favor ofFullScreenManager#getFullscreenOrientation()
. - Removed deprecated
AdsConfiguration
. - Removed
THEOplayerGlobal#getSDKType()
API. - Align
LoadedDataEvent#getCurrentTime()
andWaitingEvent#getCurrentTime()
APIs with the rest of Events to returndouble
instead ofString
. - Applications using the Cache feature are now required to add
android.permission.FOREGROUND_SERVICE_DATA_SYNC
permission in their AndroidManifest.xml file. - Removed deprecated
THEOplayerView.getPlayerSuiteVersion()
andTHEOplayerGlobal.getPlayerSuiteVersion()
APIs. - Removed deprecated
MediaTailorSource.Builder
constructors. - Removed deprecated
SourceDescription.Builder#ads()
API. - Removed deprecated
KeySystemConfiguration.Builder#licenseType()
API.
β‘ Improvementsβ
- Updated the Gson dependency from 2.8.2 to 2.10.1.
- Updated the Google Chromecast dependency from 21.3.0 to 21.4.0.
- Updated the Google Mediarouter dependency from 1.2.6 to 1.7.0.
- Updated the Google IMA dependency from 3.31.0 to 3.32.0.
iOSβ
π₯ Breaking Changesβ
- Removed deprecated bitcode compilation support.
- Removed deprecated
THEOplayer.playerSuiteVersion
API. - Removed deprecated
THEOplayer.requestCurrentTime
API. - Removed deprecated
THEOplayer.requestVideoHeight
API. - Removed deprecated
THEOplayer.requestVideoWidth
API. - Removed deprecated
THEOplayer.requestCurrentProgramDateTime
API. - Removed deprecated
THEOplayer.requestBuffered
API. - Removed deprecated
THEOplayer.requestPlayed
API. - Removed deprecated
THEOplayer.requestMetrics
API. - Removed deprecated
THEOplayer.requestSeekable
API. - Removed deprecated
Ads.requestPlaying
API. - Removed deprecated
Ads.requestCurrentAds
API. - Removed deprecated
Ads.requestCurrentAdBreak
API. - Removed deprecated
Ads.requestScheduledAdBreaks
API. - Removed deprecated
Ads.requestScheduledAds
API. - Removed deprecated
GoogleDAI.requestSnapBack
API. - Removed deprecated
GoogleDAI.setSnapBack
API. - Removed deprecated Yospace related APIs.
- Removed deprecated
FullscreenEventTypes.ASPECT_RATIO_CHANGE
API. - Removed deprecated
Fullscreen.aspectRatio
&Fullscreen.setAspectRatio
APIs. - Removed deprecated Moat related APIs.
- Removed deprecated Agama related APIs.
- Removed deprecated Verizon Media related types.
- Removed deprecated
EventDispatcher
class. - Removed deprecated Conviva related types.
- Removed deprecated
AudioQuality
type. - Removed deprecated
chromeless
,cssPaths
,jsPaths
,jsPathsPre
,defaultCSS
,pictureInPicture
andanalytics
properties fromTHEOplayerConfiguration
. - Removed deprecated SpotX related types.
- Removed deprecated
analytics
property fromSourceDescription
andSourceDescription.init
. - Removed deprecated
AnalyticsDescription
andAnalyticsIntegration
types. - Removed deprecated
YouboraOptions
type. - Removed deprecated
THEOAdDescription
type. - Remove deprecated
addJavascriptMessageListener
,removeJavascriptMessageListener
andevaluateJavaScript
methods fromTHEOplayer
. - Removed deprecated
THEOplayer.related
property,RelatedContent
type, and all related RelatedContent types. - Removed deprecated VR related APIs.
tvOSβ
π₯ Breaking Changesβ
- Removed deprecated tvOS specific
THEOplayer
initializers. - Removed deprecated
MenuItem
andMenuLayoutConfigurator
types.
π 6.13.0 (2024/03/28)β
Webβ
β¨ Featuresβ
- For Google IMA, added the option to pass
uiElements
to the Google IMA SDK usingPlayerConfiguration.ads.googleIma.uiElements
.
π Issuesβ
- Fixed an issue on smart TVs where switching to or from an opus audio track could cause playback issues.
- Fixed an issue on Android devices where sometimes the gyroscope would not work immediately after playing a VR source inside an iframe.
π Deprecationsβ
- Deprecated
PlayerConfiguration.ads.showCountdown
in favor ofPlayerConfiguration.ads.googleIma.uiElements
.
Androidβ
π Issuesβ
- Fixed an issue where mediaTracks were not consistent between cast sender and receiver.
- Fixed an issue where
MediaTailorSource.Builder#src(String)
did not have all setters asTypedSource.Builder
has. - Fixed an issue where video playback was failing if network connection was too slow.
- Fixed an issue where the player would not cancel request if they took too long, for example after a big network drop.
π Deprecationsβ
- Deprecated setter in
MediaTailorSource.Builder#src(String)
for source URL in favor of Builder with a parameterMediaTailorSource.Builder#Builder(String)
- Deprecated
MediatailorSource.Builder()
default constructor in favor of constructor with a parameterMediaTailorSource.Builder#Builder(String)
- Deprecated unused
RequestCallback
interface. - Deprecated asynchronous
Player
APIs in favor of the respective synchronous ones. - Deprecated
CastIntegrationFactory.createCastIntegration(THEOplayerView)
API in favor ofCastIntegrationFactory.createCastIntegration(THEOplayerView, CastConfiguration)
. - Deprecated
THEOplayerSettings#setFullScreenOrientationCoupled(boolean)
in favor ofFullScreenManager#setFullScreenOrientationCoupled(boolean)
. - Deprecated
THEOplayerSettings#isFullScreenOrientationCoupled()
in favor ofFullScreenManager#isFullScreenOrientationCoupled()
. - Deprecated
THEOplayerSettings#setFullscreenOrientation(@ScreenOrientation int)
in favor ofFullScreenManager#setFullscreenOrientation(@ScreenOrientation int)
. - Deprecated
THEOplayerSettings#getFullscreenOrientation()
in favor ofFullScreenManager#getFullscreenOrientation()
. - Deprecated
AdsConfiguration
in favor of integration specific configuration.
iOSβ
β¨ Featuresβ
- Added conformance to Apple's new privacy policy for API usage.
π Deprecationsβ
- Deprecated
AnalyticsDescription
andAnalyticsIntegration
types. - Deprecated
setPreload
method in favor ofpreload
property setter. - Deprecated
setPlaybackRate
method in favor ofplaybackRate
property setter. - Deprecated Verizon Media related types.
- Deprecated
GoogleIMAAdsConfiguration
&GoogleIMAConfigurationBuilder
. Configuration for Google IMA is moved toTHEOplayerGoogleIMAIntegration
. - Deprecated
PiPConfiguration.init
methods in favor ofPiPConfigurationBuilder
. ThenativePictureInPicture
property inPiPConfigurationBuilder
defaults totrue
. - Deprecated obsolete
EventDispatcher
class. - Deprecated Conviva related types. Conviva feature has moved to
THEOplayer-Connector-Conviva
. - Deprecated
AudioQuality
type. - Deprecated
UIConfiguration
type. - Deprecated
AdsConfiguration
type. - Deprecated
THEOplayerConfiguration.init
methods in favor ofTHEOplayerConfigurationBuilder
. - Deprecated
chromeless
,ads
,ui
,cssPaths
,jsPaths
,jsPathsPre
,defaultCSS
,pictureInPicture
,analytics
andcast
properties fromTHEOplayerConfiguration
. - Deprecated SpotX related types.
- Deprecated
THEOplayerCastHelper
in favor ofTHEOplayerGoogleCastIntegration.CastIntegrationHelper
. - Deprecated
GoogleDAIAdsConfiguration
&GoogleDAIAdsConfigurationBuilder
. Configuration for Google DAI is moved toTHEOplayerGoogleIMAIntegration
. - Deprecated
analytics
property fromSourceDescription
andSourceDescription.init
. - Deprecated
vr
property fromSourceDescription
andSourceDescription.init
, andVRConfiguration
type. - Deprecated
THEOplayer.related
property,RelatedContent
type, and all related RelatedContent types. - Deprecated
addJavascriptMessageListener
,removeJavascriptMessageListener
andevaluateJavaScript
methods fromTHEOplayer
. - Deprecated
THEOAdDescription
type. - Deprecated
YouboraOptions
type. - Deprecated
AdPreloadType
type.
tvOSβ
π Deprecationsβ
- Deprecated tvOS specific
THEOplayer
initializers. Moving forward, iOS and tvOSTHEOplayer
initializers are unified. - Deprecated
MenuItem
andMenuLayoutConfigurator
types.