[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

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

Stable

12/7/2021

3.11.0

Added

  • SourceEvent.DrmDataParsed being emitted via the corresponding Source listener in addition to the existing player listener
  • Player.playbackTimeOffsetToRelativeTime to convert absolute live timestamps to relative timestamps
  • Player.playbackTimeOffsetToAbsoluteTime to convert relative live timestamps to absolute timestamps

Changed

  • Integrated changes from ExoPlayer version 2.15.1
  • Muted state is not being synced between the local device and any cast receiver anymore as the audio setup between those devices is too different for this to be a sensible default behavior. The old behavior can be achieved by manually muting or unmuting after PlayerEvent.CastStarted or PlayerEvent.CastStopped is emitted

Fixed

  • Player.playbackVideoData returning null after a period switch to a DASH period containing different qualities than the previous one
  • PlayerEvent.VideoPlaybackQualityChanged being emitted with null as the new quality after a period switch to a DASH period containing different qualities than the previous one
  • Setting Player.volume and calling Player.mute or Player.unmute not working when there is no source loaded
  • Setting Player.volume and calling Player.mute or Player.unmute not working while connecting to a cast-compatible device
  • Initial volume and muted state sometimes not being respected for ad playback
  • Muxed tracks being listed as separate OfflineOptionEntrys for download
  • Invalid tracks being listed as OfflineOptionEntrys for download

Known Issues

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

Stable

11/23/2021

3.10.0

Added

  • SourceEvent.MetadataParsed to be emitted for in-band metadata from the Source the metadata actually belongs to. With this addition all metadata formats are emitted correctly through the respective Source

Changed

  • PlayerEvent.Seeked is now emitted once the seek operation is actually completed and enough data is buffered to continue playback instead of it being emitted immediately after calling Player.seek
  • PlayerEvent.TimeShifted is now emitted once the time shift operation is actually completed and enough data is buffered to continue playback instead of it being emitted immediately after calling Player.timeshift
  • PlayerEvent.StallStarted and PlayerEvent.StallEnded are not emitted during seek or time shift operations anymore
  • The new event sequence when triggering replay by calling Player.play when the player has finished playback is PlayerEvent.Play, PlayerEvent.PlaylistTransition, PlayerEvent.Playing instead of PlayerEvent.PlaylistTransition, PlayerEvent.Play, PlayerEvent.Playing

Fixed

  • Player.currentTime not returning an epoch timestamp for DASH live streams with periods declaring a start time
  • Player.currentTime returning the seek target timestamp while seeking
  • Player.currentTime returning the time shift target timestamp while time shifting
  • PlayerEvent.Seeked being emitted before enough data is loaded to continue playback
  • PlayerEvent.TimeShifted being emitted before enough data is loaded to continue playback
  • Incorrect Metadata.startTime for in-band metadata in the first Period of a DASH live streams
  • Incorrect Metadata.startTime for EventStream metadata in DASH live streams
  • Low Latency catch-up and fallback mechanism not working when close to the live edge
  • Not selected media tracks being downloaded when they contain metadata
  • PlayerEvent.TimeShift not containing absolute timestamps when time shifting in a DASH live source
  • PlayerEvent.TimeShift not containing relative timestamps when time shifting in an HLS live source
  • Last frame of an ad staying visible once ad playback has finished

Known Issues

  • The playhead on the seekbar can jump back and forth while seeking when using the Bitmovin Player Web UI
  • Incorrect Metadata.startTime for in-band metadata in periods that are not at the first position in DASH live streams

Stable

11/10/2021

3.9.0

Added

  • SourceEvent.DownloadFinished to be emitted for inactive sources in a playlist
  • Details on what caused a specific error (if available) to OfflineErrorEvent

Removed

  • Koin dependency

Fixed

  • General offline error being surfaced via SourceErrorCode.General instead of OfflineErrorCode.General

Known Issues

Stable

10/26/2021

3.8.1

Fixed

  • Suspended offline downloads of individual tracks that were started utilizing Player SDK version 2 cannot be resumed with Player SDK version 3

Known Issues

Stable

10/12/2021

3.8.0

Added

  • PlayerNotificationManager.createWithNotificationChannel overload that takes a CustomActionReceiver
  • Source.getThumbnail to expose thumbnails for inactive sources in a player
  • AdItem.preloadOffset to specify the amount of seconds the ad manifest should be loaded in advance compared to when the ad break is scheduled for playback
  • Support for background playback of IMA ads

Changed

  • The offset with which the manifest for ads was preloaded now defaults to 0 seconds instead of 10. With the introduction of AdItem.preloadOffset, this can now be configured per ad break.

Fixed

  • Bitmovin Web UI using an invalid duration when joining an existing cast session
  • Bitmovin Web UI using an invalid duration after pre-roll ad was played when autoplay is enabled
  • Bitmovin Web UI occasionally not reflecting the correct current time when starting a cast session while playback is paused
  • Cast receiver incorrectly displaying live source with VoD UI
  • Player.duration returning 0.0 instead of -1.0 if it is unknown during casting
  • Player crashing if it gets detached from the PlayerView while ads are scheduled

Known Issues

Stable

9/28/2021

3.7.1

Fixed

  • Ad playback not pausing if hosting app is sent to background

Stable

9/14/2021

3.7.0

Added

  • Support for the @endNumber attribute in DASH manifests
  • ResourceIdentifierCallback parameter to OfflineContentManager.getOfflineContentManager() in order to not lose already downloaded resources when the resource URLs (e.g. segment URLs) have changed since the last time the source was downloaded for offline playback

Changed

  • PlayerEvent.Play, PlayerEvent.Playing, PlayerEvent.Paused and PlayerEvent.PlaybackFinished are now also emitted while connected to a cast-compatible device

Removed

  • TweaksConfig.shouldEmitAllPendingMetadataOnStreamEnd as it has no effect anymore. The expected behaviour is now achieved without the need to configure it

Fixed

  • Additional PlayerEvent.Playing being emitted when player resumes playback after stall and it was playing before the stall
  • PlayerEvent.Paused being emitted when pausing a fresh playback session where Player.play was never called before
  • Player.isPaused returning true for a fresh playback session where Player.play was never called before pausing
  • PlayerEvent.CastPlaybackFinished being emitted immediately after connecting to a cast-compatible device, even though playback is not finished
  • PlayerEvent.CastPlaying being emitted immediately after connecting to a cast-compatible device, even though content is not playing
  • PlayerEvent.CastPaused being emitted immediately after connecting to a cast-compatible device, even though content was not explicitly paused
  • PlayerEvent.Paused being emitted when connecting to a cast-compatible device when content was already playing on the local device before
  • Additional PlayerEvent.Play and PlayerEvent.Playing being emitted when returning from a cast-compatible device to local device playback and content was already playing on the cast-compatible device
  • Replay button not showing on the local device when playback has finished while casting to a cast-compatible device
  • SourceConfig.audioCodecPriority and SourceConfig.videoCodecPriority not being respected when loading a single source into the player
  • DownloadFinished.lastRedirectionLocation being null when a redirect happened

Deprecated

  • PlayerEvent.CastPaused, PlayerEvent.CastPlaying, PlayerEvent.CastPlaybackFinished. PlayerEvent.Paused, PlayerEvent.Playing and PlayerEvent.PlaybackFinished can be used instead

Stable

8/3/2021

3.6.0

Added

  • PlaybackConfig.audioFilter and PlaybackConfig.videoFilter that can be set to a new MediaFilter to specify how strictly potentially unsupported media tracks and qualities are filtered out of a playback session.
  • TweaksConfig.devicesThatRequireSurfaceWorkaround to workaround a potential problem with some device's Surface implementation.
  • Cue.verticalType to represent the vertical orientation of a cue

Fixed

  • Subtitles being rendered off-screen when using the Bitmovin Player Web UI

Known Issues

  • Media tracks and qualities that are definitely not supported during a playback session are now filtered out by default, meaning that they will not be exposed via Player.availableAudio, Player.availableAudioQualities and Player.availableVideoQualities. PlaybackConfig.audioFilter and PlaybackConfig.videoFilter can be set to a different MediaFilter to make the filtering more strict or to not filter at all
  • Paddings and font sizes in the Web UI are slightly adjusted

Latest Releases

Give us feedback