[object Object] Icon

Encoding
Learn how to create, start, manage and modify Encodings

[object Object] Icon

Player
Learn how to create, start, manage and modify Players

[object Object] Icon

Analytics
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 Android / AndroidTV Releases

Latest Releases

Date

Version

Stable

6/21/2022

3.19.0

Added

  • PlaylistApi.add, which adds a Source to an active playback session
  • PlayerEvent.SourceAdded, which is emitted when a source was added to the active playback session
  • SourceEvent.AudioTrackAdded to replace SourceEvent.AudioAdded for naming consistency
  • SourceEvent.AudioTrackRemoved to replace SourceEvent.AudioRemoved for naming consistency
  • SourceEvent.AudioTrackChanged to replace SourceEvent.AudioChanged for naming consistency
  • SourceEvent.SubtitleTrackAdded to replace SourceEvent.SubtitleAdded for naming consistency
  • SourceEvent.SubtitleTrackRemoved to replace SourceEvent.SubtitleRemoved for naming consistency
  • SourceEvent.SubtitleTrackChanged to replace SourceEvent.SubtitleChanged for naming consistency

Fixed

  • Crash when trying to resume or delete a download initiated with player version < 3.14.1

Deprecated

  • SourceEvent.AudioAdded. Use SourceEvent.AudioTrackAdded instead
  • SourceEvent.AudioRemoved. Use SourceEvent.AudioTrackRemoved instead
  • SourceEvent.AudioChanged. Use SourceEvent.AudioTrackChanged instead
  • SourceEvent.SubtitleAdded. Use SourceEvent.SubtitleTrackAdded instead
  • SourceEvent.SubtitleRemoved. Use SourceEvent.SubtitleTrackRemoved instead
  • SourceEvent.SubtitleChanged. Use SourceEvent.SubtitleTrackChanged instead
  • Player.availableAudio. Instead Source.availableAudioTracks can be used on the active source Player.source
  • Player.audio. Instead Source.selectedAudioTrack can be used on the active source Player.source
  • Player.setAudio. Instead Source.setAudioTrack can be used on the active source Player.source
  • Player.availableAudioQualities. Instead Source.availableAudioQualities can be used on the active source Player.source
  • Player.audioQuality. Instead Source.selectedAudioQuality can be used on the active source Player.source
  • Player.setAudioQuality. Instead Source.setAudioQuality can be used on the active source Player.source
  • Player.availableVideoQualities. Instead Source.availableVideoQualities can be used on the active source Player.source
  • Player.videoQuality. Instead Source.selectedVideoQuality can be used on the active source Player.source
  • Player.setVideoQuality. Instead Source.setVideoQuality can be used on the active source Player.source
  • Player.availableSubtitles. Instead Source.availableSubtitleTracks can be used on the active source Player.source
  • Player.subtitle. Instead Source.selectedSubtitleTrack can be used on the active source Player.source
  • Player.setSubtitle. Instead Source.setSubtitle can be used on the active source Player.source
  • Player.removeSubtitle. Instead Source.removeSubtitleTrack can be used on the active source Player.source
  • Player.getThumbnail. Instead Source.getThumbnail can be used on the active source Player.source

Stable

5/24/2022

3.18.1

Fixed

  • Target buffer level potentially not being reached for high bitrate qualities
  • All but the first created OfflineContentManager failing unrecoverably if network connection is lost during download

Stable

5/10/2022

3.18.0

Added

  • Source.availableAudioTracks, which provides the currently available audio tracks of the source
  • Source.availableAudioQualities, which provides the currently available audio qualities of the selected audio track of the source
  • SourceEvent.AudioAdded to be emitted from the Source for which the audio track was added. It is now also emitted for inactive sources in a playlist
  • SourceEvent.AudioRemoved to be emitted from the Source for which the audio track was added. It is now also emitted for inactive sources in a playlist
  • SourceEvent.AudioTracksChanged, which is emitted when the Source.availableAudioTracks changed
  • SourceEvent.AudioQualityAdded, which is emitted when a new audio quality was added to Source.availableAudioQualities
  • SourceEvent.AudioQualityRemoved, which is emitted when an audio quality was removed from Source.availableAudioQualities
  • SourceEvent.AudioQualitiesChanged, which is emitted when the Source.availableAudioQualities changed
  • SourceEvent.AudioChanged to be emitted from the Source for which the audio track changed. It is now also emitted for inactive sources in a playlist
  • Source.setAudioTrack, which allows setting an audio track for the source
  • Source.selectedAudioTrack, which provides the currently selected audio track of the source
  • SourceEvent.AudioQualityChanged to be emitted from the Source for which the audio quality changed. It is now also emitted for inactive sources in a playlist
  • Source.setAudioQuality, which allows setting a fixed audio quality for the source
  • Source.selectedAudioQuality, which provides the currently selected audio quality of the source
  • SourceEvent.AudioDownloadQualityChanged to be emitted from the Source for which the download quality changed. It is now also emitted for inactive sources in a playlist
  • SourceEvent.Warning and SourceEvent.Error to be emitted from the Source for which the respective warning or error occurred. It is now also emitted for inactive sources in a playlist

Fixed

  • Crash when creating a PlayerNotificationManager on Android 31 devices
  • Some errors not being surfaced via the corresponding SourceEvent.Error or PlayerEvent.Error listeners

Stable

4/26/2022

3.17.0

Added

  • Source.availableSubtitleTracks, which provides the currently available subtitle tracks of the source
  • SourceEvent.SubtitleAdded to be emitted from the Source for which the subtitle track was added. It is now also emitted for inactive sources in a playlist
  • SourceEvent.SubtitleRemoved to be emitted from the Source for which the subtitle track was added. It is now also emitted for inactive sources in a playlist
  • SourceEvent.SubtitleTracksChanged, which is emitted when the Source.availableSubtitleTracks changed
  • Source.setSubtitleTrack, which allows setting a subtitle track for the source
  • Source.selectedSubtitleTrack, which provides the currently selected subtitle track of the source
  • SourceEvent.SubtitleChanged to be emitted from the Source for which the subtitle track changed. It is now also emitted for inactive sources in a playlist

Fixed

  • User-Agent header being ignored/overridden when set via the PreprocessHttpRequestCallback
  • Download service crashing when setting the OfflineConfig before creating an OfflineContentManager

Stable

4/12/2022

3.16.0

Added

  • Source.setVideoQuality, which allows setting a fixed video quality for the source
  • Source.selectedVideoQuality, which provides the currently selected video quality of the source

Changed

  • Download Service stops itself when all downloads are suspended

Fixed

  • Last ad frame being visible after orientation changes on Android 12
  • Main content being visible in background during fullscreen ad playback, if aspect ratio does not exactly fit the screens ratio
  • No audio being played back after switching from a fixed AudioQuality to "auto"
  • AudioTrack selection being ignored after selecting a AudioQuality
  • Foreground notification of the download service not vanishing if all downloads are suspended

Stable

3/16/2022

3.15.0

Added

  • Source.availableVideoQualities, which provides the currently available video qualities of the source
  • SourceEvent.VideoQualityAdded, which is emitted when a video quality has been added to the source
  • SourceEvent.VideoQualityRemoved, which is emitted when a video quality has been removed from the source
  • SourceEvent.VideoQualitiesChanged, which is emitted when the Source.availableVideoQualities changed
  • SourceEvent.VideoDownloadQualityChanged to be emitted from the Source for which the download quality changed. It is now also emitted for inactive sources in a playlist

Fixed

  • Offline thumbnail scrubbing not working on devices running Android 11+
  • Casting to a remote device being stopped when destroying the Bitmovin Player
  • ExpandedControllerActivity loading endlessly if pausing an active cast session
  • Wrong video qualities being displayed in Bitmovin Web UI when video qualities change during playback
  • Potential crash when getting a buffer level via BufferApi.getLevel
  • SubtitleTrack selection is reset to default when selecting an AudioTrack
  • AudioTrack selection is reset to default when selecting a SubtitleTrack

Stable

3/16/2022

3.14.1

Changed

  • Integrated changes from ExoPlayer version 2.16.1
  • SourceOptions.startOffset is now nullable and null per default. This change was necessary to properly support EXT-X-START:TIME-OFFSET values.

Fixed

  • Live edge being clamped to EXT-X-START:TIME-OFFSET value if present in a live HLS playlist. This could lead to an invalid DVR window, affecting potential timeshift operations.

Known Issues

  • AudioTrack selection is reset to default when selecting a SubtitleTrack and vice versa

Stable

3/16/2022

3.13.3

Added

  • Source.seekableRange, which returns a time range in seconds the player can seek in between. Does not return valid values for live sources yet
  • AdaptationConfig.initialBandwidthEstimateOverride to replace AdaptationConfig.startupBitrate as the latter does not do what the name suggests

Changed

  • Updated IMA SDK dependency to version 3.26.0. This may require an update of the dependent Google Ads Play Services.
  • Updated Google Cast SDK to 21.0.1
  • PlayerEvent.TimeChanged is now emitted on the main thread

Fixed

  • Player.seek or Player.timeshift being ignored when called inside PlayerEvent.Ready listener
  • PlayerEvent.TimeChanged being emitted before the start offset is applied for live sources
  • PlayerEvent.TimeChanged not being emitted after a successful seek or time shift when paused

Deprecated

  • AdaptationConfig.startupBitrate as it does not do what the name suggests. Use AdaptationConfig.initialBandwidthEstimateOverride instead

Stable

1/18/2022

3.12.0

Added

  • Support for different audio and video codec priorities via SourceConfig.audioCodecPriority and SourceConfig.videoCodecPriority when multiple sources are part of a playback session

Changed

  • Default Bitmovin Web UI version to 3.32.0

Fixed

  • Playhead on the seekbar jumping back and forth while seeking when using the default Bitmovin Web UI
  • SourceErrorCode.General error description in Bitmovin Web UI showing placeholder instead of a proper message
  • Potential NullReferenceException when playing multi period DASH live streams

Stable

12/21/2021

3.11.1

Fixed

  • Streams containing unsupported metadata not playing
  • Player.currentTime returning incorrect values for progressive live streams
  • Post-roll IMA ads occasionally being played back only when replaying the source
  • ResourceIdentifierCallback not being called for DASH segments
  • SourceEvent.SubtitleChanged containing a special off subtitle track instead of null when enabling/disabling subtitles during casting. This behaviour was not in line with the same event during local playback.
  • Subtitles not disabling when passing null to Player.setSubtitle during casting

Known Issues

  • The playhead on the seekbar can jump back and forth while seeking when using the Bitmovin Player Web UI

Latest Releases

Give us feedback