Player iOS / tvOS Releases
Latest Releases
Stable
3.19.0
5/10/2022
Stable
5/10/2022
3.19.0
Added
cea
toSubtitleFormat
to represent closed captions
Changed
- Type of
position
fromString?
toCuePosition?
inCueEvent
,CueEnterEvent
,CueExitEvent
andCueParsedEvent
Fixed
- Positioning information not available on
CueEnterEvent
andCueExitEvent
for closed caption tracks hideFirstFrame
not working when usingUserInterfaceType.system
Stable
4/11/2022
3.18.0
Removed
AudioQuality
as it was unused
Fixed
- Player getting stuck when new source is loaded directly from
onSourceError
listener SourceErrorEvent
emitted twice when new source is loaded directly fromonSourceError
listener- Missing
AdErrorEvent
event for ads with non-supported file types within VMAP manifests - Thumbnails not showing on the Bitmovin Player UI
- Absolute-path relative references not resolved correctly for WebVTT
ThumbnailTrack
Stable
3/29/2022
3.17.0
Added
replayMode
property to thePlaylistOptions
to make playlist replay behavior configurable
Changed
OfflineContentManager.offlineDrmLicenseInformation
to return optional value in order to always represent the correct stateOfflineManager.offlineDrmLicenseInformationForSourceConfig:
to return optional value in order to always represent the correct state
Removed
- Support for Bitmovin Player Web UI below version
3.19.0
Fixed
offlineDrmLicenseInformation.isDrmLicenseExpired
is always showing as expired for FPS protected content- Background Playback not working when
uiEnabled
is false
Deprecated
OfflineContentManager.isDrmLicenseExpired
in favor of optionalOfflineContentManager.offlineDrmLicenseInformation
value
Stable
3/15/2022
3.16.0
Added
- Swift Package Manager support. To use our SDK with the Swift Package Manager we created this repository including all releases starting from 3.0.0
SubtitleRemovedEvent
,SubtitleChangedEvent
,SubtitleAddedEvent
andCueParsedEvent
to be emitted for inactive sources in a playlist
Changed
SubtitleRemovedEvent
,SubtitleChangedEvent
,SubtitleAddedEvent
andCueParsedEvent
are now conforming toSourceEvent
instead ofPlayerEvent
CueEvent
is now a protocol instead of a class conforming toPlayerEvent
Fixed
- Incorrect SCTE tag timing when the initial variant playlist has a
EXT-X-MEDIA-SEQUENCE
of 0 CueEnter.text
property containing<br>
as new-line representation instead of\n
CueEnter.html
property containing\n
as new-line representation instead of<br>
for externalSubtitleTrack
sCueEnter.html
is empty forSubtitleTrack
s that are present in the manifest
Stable
3/1/2022
3.15.0
Added
isCastEnabled
property to theRemoteControlConfig
to enable or disable casting functionality for a player instance- Support for
ID
andCLASS
properties forEXT-X-DATERANGE
metadata
Fixed
- Some internal events are emitted through the
onEvent
listener method
Stable
2/16/2022
3.14.0
Added
MetadataParsedEvent
to be emitted for inactive sources in a playlist when SCTE metadata is parsed for HLS contentMetadataParsedEvent
to be emitted for inactive sources in a playlist when Id3 metadata is parsed for HLS content- Allow seeking and time shifting as soon as
PlayerActiveEvent
is seen. Before, it was required to wait until theReadyEvent
is received. - Support for negative values for
player.playbackSpeed
to allow reverse playback Player.canPlayAtPlaybackSpeed
API to check if givenplaybackSpeed
value is supported by the currently loaded source
Fixed
- Missing
TimeShiftEvent
andTimeShiftedEvent
on tvOS when live stream contains EXT-X-PROGRAM-DATE-TIME - Playback via AirPlay for HLS streams hosted on Akamai using Token Authentication
- Unnecessary caching of HLS playlist requests
Known Issues
- Picture in Picture mode is not working on iOS 14.0 and iOS 14.1
- Playback gets stuck when playing a Progressive Ad that results in an
AdError
- Loading a new
Source
from aPlayerErrorEvent
or aSourceErrorEvent
does not work - Loading a new
Source
from aPlaybackFinishedEvent
sometimes does not start playback automatically whenPlaybackConfig.isAutoPlayEnabled
is set totrue
- When our default Bitmovin Player Web UI is used it can happen that the label of an
AudioTrack
keeps the value of the previous source
Stable
2/1/2022
3.13.0
Added
- Automatic retries for HLS playlist requests when the previous request failed with an non-2xx HTTP status code
Fixed
- Time shifting not always working properly when being connected to AirPlay on iOS versions lower than iOS 14.7
- Potential runtime crash when using Google IMA SDK
Known Issues
- Picture in Picture mode is not working on iOS 14.0 and iOS 14.1
- Playback gets stuck when playing a Progressive Ad that results in an
AdError
- Loading a new
Source
from aPlayerErrorEvent
or aSourceErrorEvent
does not work - Loading a new
Source
from aPlaybackFinishedEvent
sometimes does not start playback automatically whenPlaybackConfig.isAutoPlayEnabled
is set totrue
- When our default Bitmovin Player Web UI is used it can happen that the label of an
AudioTrack
keeps the value of the previous source
Stable
1/18/2022
3.12.0
Added
HttpRequestType
enum when used from SwiftDownloadFinishedEvent.requestType
to make use of the newHttpRequestType
enum
Changed
- Update Google Cast SDK to latest stable version (4.7.0)
Removed
- Underscored methods and properties from documentation
Fixed
- Partially downloaded offline data getting discarded when upgrading from version 2.64.2 or below
- Resuming offline downloads after upgrading from version 2.64.2 or below
- Crash during seeking while connecting to Google Cast device
PlayEvent
being fired too late whenPlaybackConfiguration.isAutoplayEnabled
is set totrue
- Documentation generation for various types
- Missing documentation for tvOS only properties
Known Issues
- Picture in Picture mode is not working on iOS 14.0 and iOS 14.1
- Playback gets stuck when playing a Progressive Ad that results in an
AdError
- Loading a new
Source
from aPlayerErrorEvent
or aSourceErrorEvent
does not work - Loading a new
Source
from aPlaybackFinishedEvent
sometimes does not start playback automatically whenPlaybackConfig.isAutoPlayEnabled
is set totrue
- When our default Bitmovin Player Web UI is used it can happen that the label of an
AudioTrack
keeps the value of the previous source
Deprecated
HttpRequestType
s constants when used from Swift in favour of the newHttpRequestType
enumDownloadFinishedEvent.downloadType
in favour of the new properly typedrequestType
property
Stable
12/21/2021
3.11.0
Changed
- Updated Google IMA SDK to latest stable version (3.14.5)
Fixed
- Missing
PlayingEvent
whenSourceOptions.startOffset
is configured andPlaybackConfiguration.isAutoplayEnabled
is set totrue
- Deprecation message pointing to non-existing API for
OfflineManager.isPlayableOffline
- Content being paused on Google Cast receiver when sender device gets locked
- Content being reloaded unnecessarily on Google Cast receiver when sender application is brought back to foreground
Known Issues
- Picture in Picture mode is not working on iOS 14.0 and iOS 14.1
- Playback gets stuck when playing a Progressive Ad that results in an
AdError
- Loading a new
Source
from aPlayerErrorEvent
or aSourceErrorEvent
does not work - Loading a new
Source
from aPlaybackFinishedEvent
sometimes does not start playback automatically whenPlaybackConfig.isAutoPlayEnabled
is set totrue
- When our default Bitmovin Player Web UI is used it can happen that the label of an
AudioTrack
keeps the value of the previous source - Already partially downloaded data for offline playback will be lost and has to be re-downloaded after updating from below
2.64.2
to this version
Stable
12/7/2021
3.10.0
Added
OfflineContentManager
to manage all offline content and offline DRM related tasks for a singleSourceConfig
OfflineContentManagerListener
to receive updates regarding offline content and offline DRM related tasksOfflineManager.offlineContentManager(for:)
to retrieve aOfflineContentManager
instance for a certainSourceConfig
OfflineEvent
as parent type for all events emitted by anOfflineContentManager
AvailableTracksFetchedEvent
to get notified when the available tracks were fetchedOfflineContentLicenseExpiredEvent
to get notified when the stored license is expiredOfflineContentLicenseRenewedEvent
to get notified when the license was renewedContentDownloadCanceledEvent
to get notified when the content download was cancelledContentDownloadResumedEvent
to get notified when the content download was resumedContentDownloadProgressChangedEvent
to get notified for every progress change during the content downloadContentDownloadSuspendedEvent
to get notified when the content download was suspendedContentDownloadFinishedEvent
to get notified when the content download finished successfullyOfflineErrorEvent
to get notified about any error that happenedOfflineManager.offlineContentManager(for:id:)
to retrieve aOfflineContentManager
instance for a certainSourceConfig
using a custom unique identifierOfflineContentManager.tweaks
namespace to control tweaks for offline content downloadsOfflineContentManagerTweaksApi.migrateDownload(remoteAssetUrl:resourceIdentifierCallback:)
to enable updating download URL for offline content downloads
Changed
AudioAddedEvent
,AudioChangedEvent
andAudioRemovedEvent
are now conforming toSourceEvent
instead ofPlayerEvent
- Improved documentation of consequences when enabling/disabling
TweaksConfig.isCustomHlsLoadingEnabled
andTweaksConfig.isNativeHlsParsingEnabled
Removed
- Internal types from public documentation
Fixed
- Downloading ClearKey (AES-128) protected content when
SourceConfig.title
is not set - Calling
player.audio
orplayer.setAudio(trackIdentifier:)
before the source finishes loading blocks the main thread
Known Issues
- Picture in Picture mode is not working on iOS 14.0 and iOS 14.1
- Playback gets stuck when playing a Progressive Ad that results in an
AdError
- Loading a new
Source
from aPlayerErrorEvent
or aSourceErrorEvent
does not work - Loading a new
Source
from aPlaybackFinishedEvent
sometimes does not start playback automatically whenPlaybackConfig.isAutoPlayEnabled
is set totrue
- When our default Bitmovin Player Web UI is used it can happen that the label of an
AudioTrack
keeps the value of the previous source - Already partially downloaded data for offline playback will be lost and has to be re-downloaded after updating from below
2.64.2
to this version
Deprecated
- All methods on the
OfflineManager
which areSourceConfig
related. From now on theOfflineContentManager
should be used OfflineManagerListener
and all its methods. From now on theOfflineContentManagerListener
should be used