[object Object] Icon

Learn how to create, start, manage and modify Encodings

[object Object] Icon

Learn how to create, start, manage and modify Players

[object Object] Icon

Learn how to create, start, manage and modify Analyticss

Docs Home
User shortcuts for search
Focus by pressing f
Hide results by pressing Esc
Navigate via   keys

Player iOS / tvOS Release 3.0.0




V3 of the iOS Player SDK marks a new direction where the player itself and the sources it plays back become more decoupled. Check out the V2 -> V3 Migration Guide for a detailed description and migration steps.


  • Native support for running the SDK on iOS/tvOS simulators on Apple Silicon
  • Player protocol, which replaces the BitmovinPlayer as the main player type
  • PlayerFactory to create Player instances
  • Source protocol as top-level type
  • SourceFactory to create Source instances
  • LoadingState indicating the current state of a Source
  • Player.source that returns the currently active source
  • Player.load(source:) to load a single Source
  • PlaylistConfig to configure playback of multiple sources
  • PlaylistOptions to customize additional playlist behaviour
  • Player.playlist namespace to control playback of multiple sources
  • Player.load(playlistConfig:) to load multiple Sources
  • Player.registerPlayerLayer for custom native UI support using an AVPlayerLayer
  • Player.registerPlayerViewController for custom native UI support using an AVPlayerViewController
  • Player.registerAdContainer for custom native UI support to register the container view which should be used for Ad rendering
  • TweaksConfiguration.seekToEndThreshold to configure the threshold when seeking to the end in seconds
  • The sender to the each PlayerListener method to distinguish which Player emitted an event
  • Events


  • The BitmovinPlayer framework is now shipped as XCFramework
  • All Configurations were renamed to Config
  • DurationChangedEvent is no longer fired initially
  • Renamed SourceItem to SourceConfig
  • Renamed SourceItem.itemTitle to SourceConfig.title
  • Renamed SourceItem.itemDescription to SourceConfig.sourceDescription
  • Removed SourceConfig.drmConfigs and introduced SourceConfig.drmConfig to only handle a single DrmConfig
  • Removed SourceConfig.progressiveSources and introduce SourceConfig.progressiveSource to only handle a single ProgressiveSource
  • SourceConfig.options is no longer an optional type
  • Renamed BitmovinPlayerView to PlayerView
  • Moved Player.sourceMetadata to Source.metadata
  • Removed BMP prefix from all public types used from Swift
  • Increased minimum required Google Cast SDK version to 4.4.1+
  • Renamed MediaSourceType to SourceType
  • Rewrote all abbreviations and acronyms to follow CamelCase style
  • Renamed RemoteControlAPI to RemoteControlApi
  • Renamed UserInterfaceAPI to UserInterfaceApi
  • CAF is now used as the default cast receiver
  • Bitmovin Player Web UI v3.25.0 is now used as the default UI


  • Player.setup - Pass the PlayerConfig to the PlayerFactory instead
  • PlayerConfig.sourceConfig - Loading a source from the PlayerConfig is no longer supported
  • ConfigurationUpdatedEvent
  • PlayerView - The BitmovinPlayerView from v2 became the new PlayerView
  • PlaybackType
  • SourceConfig.drmConfigs
  • SourceConfig.add(drmConfig:)
  • Player.streamType - Use SourceConfig.type instead
  • Jsonable implementation
  • All non is* boolean properties on the API when used from ObjC
  • Player.preload
  • iOS/tvOS 10 Support
  • iOS/tvOS 11 Support
  • Support for non CAF Cast Receivers
  • Support for Bitmoivn Player Web UI v2


  • AdaptationConfig and NetworkConfig not extending Config
  • CloseButton of the SettingsPanel sliding out of Safe Area in Bitmovin Player Web UI v3
  • Subtitles are rendered very close to the bottom Safe Area in Bitmovin Player Web UI v3

Known Issues

  • Picture in Picture mode is not working on iOS 14.0 and iOS 14.1
  • No StallStartedEvent is emitted when subsequent Sources are not loaded yet when the playback of the previous source ends
  • Subtitles and Audio Tracks from previous Sources are present in the availableSubtilteTracks / availableAudioTracks in subsequent sources
  • Potential crash when the player gets unloaded during an Ad
  • Playback gets stuck when playing a Progressive Ad results in an AdError
  • Loading a new Source from a PlayerError or a SourceErrorEvent does not work
  • Loading a new Source from a PlaybackFinishedEvent sometimes does not start playback automatically when isAutoPlayEnabled is set to true
  • Unexpected TimeChanged event is emitted between the Play and PlayingEvent when a Source or a Playlist is replayed
  • Subtitles are not selectable when playing offline content


  • MediaSource, AdaptiveSource, HlsSource, ProgressiveSource and DashSource. SourceConfig should instead be constructed using an url and the according SourceType

Give us feedback