Changelog
These are the release notes for THEOplayer 11.0.0 and higher. For older versions, see:
🚀 11.1.0 (2026/04/28)
Web
✨ Features
- Added
Player.versionas an alias for the globalTHEOplayer.version.
🐛 Issues
- Fixed an issue where
player.hesp.latencieswould returnundefinedfor some OptiView Live streams. - Fixed an issue where
preferredKeySystemswas ignored when using thekeyospre-integration. - Fixed an issue where the player would error or stall when playing an HLS MPEG-TS stream with a small audio-only segment before a discontinuity.
- Fixed an issue where an incorrect segment URL was being requested in a DASH live stream when the player receives an MPD update that re-adds a previously removed segment in a
<SegmentTimeline>.
Android
🐛 Issues
- Fixed an issue where the
durationchangeevent was not fired before theendedevent when an HLS live stream ends with#EXT-X-ENDLIST. - Fixed an issue where switching between two DRM-enabled HESP OptiView Live streams with identical DRM configurations could crash the player.
- Fixed an issue where Cast state events are not fired if
CastStrategy.MANUALis used. The issue resulted in Cast button not being shown.
iOS
💥 Breaking Changes
- As announced in the 11.0.0 release changelog, THEOplayer iOS SDK and its integrations will now be built with Xcode 26 instead of Xcode 16.
🐛 Issues
- Fixed an issue where the aspect ratio was not properly updated while playing an OptiView Real-time stream.
- Fixed an issue where
THEOliveAPI.latencieswould returnnilfor some OptiView Live streams. - Fixed an issue where OptiView Ads triggered through ID3 would fail to load correctly.
- Fixed an issue where MP3 sources with the
audio/mpegmimetype were not recognized correctly.
Chromecast CAF
✨ Features
- Added
Player.versionas an alias for the globalTHEOplayer.version.
Roku
🐛 Issues
- Fixed an issue where using an array of URLs as
source.sourceswould cause an error. - Fixed an issue where the license expired text would show momentarily while renewing a license.
- Fixed issue where VMAP ads would not play.
- Made stall detection logic less prone to false positives.
🚀 11.0.0 (2026/04/16)
We are happy to announce the eleventh major version of THEOplayer, releasing all the improvements and developments our team has achieved since version 10.0.
THEOplayer 11.0 includes some breaking changes per SDK. Please review them carefully in the respective changelog for your SDK.
- The iOS SDK now supports iOS 15 and tvOS 15 and higher, dropping support for iOS/tvOS 13 and 14.
- On Android, the Google IMA integration has been updated to support version 3.39.0 of the Google IMA SDK. This requires core library desugaring to be enabled in your app.
For more info on navigating our breaking changes, take a look at our migration guides for Web, Android, iOS and React Native.
Web
💥 Breaking Changes
- Removed
preloadPublicationsin THEOlive API.
Android
💥 Breaking Changes
- All methods on
PlayerandTHEOplayerViewmust only be called from the main thread and are annotated with@MainThread. Calling these methods from a different thread will throw anIllegalStateException. - The Google IMA SDK integration now requires core library desugaring to be enabled. See our updated guide for Google IMA for instructions.
- Removed
preloadChannelsin THEOlive API. - Changed
MediaTailorAdAvail.idto return aStringinstead of anInt, to align withAdBreak.id. - Removed
TheoAdsErrorEvent, useAdErrorEventinstead. - Removed
TheoAdsEventTypes.THEOADS_ERROR, useAdsEventTypes.AD_ERRORinstead.
✨ Features
- Added
AdBreak.id, to replace the (now deprecated)AdBreak.idAsStringproperty.
⚡ Improvements
- Updated Google IMA SDK to version 3.39.0.
🐛 Issues
- Fixed
Event,EventListenerandEventDispatcherto not use raw types in their generic type parameters. - Fixed a
NullPointerExceptionfired by the IMA SDK on ad request.
👎 Deprecations
- Deprecated
AdBreak.idAsString, useAdBreak.idinstead.
iOS
💥 Breaking Changes
- The minimum supported iOS/tvOS version is now 15.0, dropping support for iOS/tvOS 13 and 14.
- This update aligns with current Xcode tooling requirements and enables us to maintain a high standard of performance, security, and long-term support for the SDK. All devices that support iOS/tvOS 13 and 14 are capable of upgrading to iOS/tvOS 15 or later, meaning no active hardware is excluded by this change. Additionally, based on our internal analytics, fewer than 1% of end users remain on versions below iOS/tvOS 15, and those users are predominantly on older SDK versions. This change allows us to focus development efforts on modern platform capabilities while minimizing impact to production environments.
- THEOplayer iOS SDK and its integrations will be built with Xcode 26 instead of Xcode 16 in an upcoming minor 11.x version.
- This aligns with Apple's announcement that apps must be built with the iOS 26 & tvOS 26 SDKs starting April 28, 2026.
- Please note that this is only an announcement, but not an immediate change for THEOplayer SDK. Please check upcoming release changelogs for more information.
- Removed deprecated
ManifestInterceptorandDeveloperSettingsAPIs in favor ofNetworkAPI. - Renamed
playerMetricsAPI tometrics. - Changed
Ad.adBreaktype to be optional. - Removed deprecated
MediaTrack.activeQualityBandwidthproperty in favor ofMediaTrack.activeQuality.bandwidth. - Removed deprecated
SourceDescription.enableStreamingDVRproperty. - Errors in
CachingTaskErrorStateChangeEventnow dispatch cache related error codes instead ofNETWORK_ERRORcode. For more details, check thecauseproperty of the error. - Removed
preloadPublicationsin THEOlive API.
✨ Features
- Starting with 11.0.0, the THEOplayer iOS SDK will be released in a public self-hosted spec repo.
- To get the SDK from our hosted repo, simply add
source 'https://github.com/THEOplayer/cocoapods-specs'to yourPodfile. - This decision comes as a solution to the planned read-only change to the CocoaPods public spec repo at the end of 2026.
- For now, we will keep publishing to both sources, but we highly recommended switching to THEOplayer's spec repo. Starting with 12.0.0 later this year, we plan to stop publishing to the CocoaPods public spec repo.
- To get the SDK from our hosted repo, simply add
👎 Deprecations
- Deprecated the old Chromecast pipeline in favor of the new experimental pipeline.
- The new Chromecast pipeline introduced in version 10.6.0 offers new features and improved performance. Over time and with more positive feedback, we are heading towards switching to the new pipeline by default.
- The old pipeline is still enabled by default. However, we highly recommend customers switch to the new pipeline by setting
enableExperimentalPipelinetotrueinCastConfiguration. - Starting with 12.0.0 later this year, we plan to retire the
enableExperimentalPipelineproperty together with the old pipeline, making the new pipeline the default for all customers.
- Changed the return types of
player.castandplayer.cast.airplayto be non-optional.
Roku
💥 Breaking Changes
- Removed deprecated
bitratechangeevent.