Player Android / AndroidTV Releases
Latest Releases
Stable
3.18.0
5/10/2022
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 ofOfflineErrorCode.General
Known Issues
- Due to a limitation in the Google Cast SDK, casting does not work when
targetSdkVersion
is set to31
. This is tracked in https://issuetracker.google.com/issues/195588434
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
- Due to a limitation in the Google Cast SDK, casting does not work when
targetSdkVersion
is set to31
. This is tracked in https://issuetracker.google.com/issues/195588434
Stable
10/12/2021
3.8.0
Added
PlayerNotificationManager.createWithNotificationChannel
overload that takes aCustomActionReceiver
Source.getThumbnail
to expose thumbnails for inactive sources in a playerAdItem.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 of10
. With the introduction ofAdItem.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
returning0.0
instead of-1.0
if it is unknown during castingPlayer
crashing if it gets detached from thePlayerView
while ads are scheduled
Known Issues
- Due to a limitation in the Google Cast SDK, casting does not work when
targetSdkVersion
is set to31
. This is tracked in https://issuetracker.google.com/issues/195588434
Stable
9/14/2021
3.7.0
Added
- Support for the
@endNumber
attribute in DASH manifests ResourceIdentifierCallback
parameter toOfflineContentManager.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
andPlayerEvent.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 wherePlayer.play
was never called beforePlayer.isPaused
returningtrue
for a fresh playback session wherePlayer.play
was never called before pausingPlayerEvent.CastPlaybackFinished
being emitted immediately after connecting to a cast-compatible device, even though playback is not finishedPlayerEvent.CastPlaying
being emitted immediately after connecting to a cast-compatible device, even though content is not playingPlayerEvent.CastPaused
being emitted immediately after connecting to a cast-compatible device, even though content was not explicitly pausedPlayerEvent.Paused
being emitted when connecting to a cast-compatible device when content was already playing on the local device before- Additional
PlayerEvent.Play
andPlayerEvent.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
andSourceConfig.videoCodecPriority
not being respected when loading a single source into the playerDownloadFinished.lastRedirectionLocation
beingnull
when a redirect happened
Deprecated
PlayerEvent.CastPaused
,PlayerEvent.CastPlaying
,PlayerEvent.CastPlaybackFinished
.PlayerEvent.Paused
,PlayerEvent.Playing
andPlayerEvent.PlaybackFinished
can be used instead
Stable
8/3/2021
3.6.0
Added
PlaybackConfig.audioFilter
andPlaybackConfig.videoFilter
that can be set to a newMediaFilter
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'sSurface
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
andPlayer.availableVideoQualities
.PlaybackConfig.audioFilter
andPlaybackConfig.videoFilter
can be set to a differentMediaFilter
to make the filtering more strict or to not filter at all - Paddings and font sizes in the Web UI are slightly adjusted
Stable
7/20/2021
3.5.0
Added
- Support for EXT-X-DATERANGE metadata tags in HLS playlists, which are surfaced via
SourceEvent.MetadataParsed
andPlayerEvent.Metadata
events
Fixed
- Wrong text positioning when using the
SubtitleView
- Possible crash near end of stream with subtitles enabled
Player.destroy
leading to a deadlock if called while metadata is being decoded
Stable
7/6/2021
3.4.0
Added
SourceEvent.MetadataParsed
to be emitted for inactive sources in a playlist when DASHEventStream
metadata is parsed
Changed
SourceEvent.MetadataParsed
for DASHEventStream
metadata is now emitted as soon as the manifest is parsed instead of near the start time of the metadataEventMessage.durationMs
is now nullable and is null if the duration of the metadata event is unknown
Fixed
EventMessage.durationMs
returning a nonsensical value when the duration is unknown
Stable
6/22/2021
3.3.0
Added
SourceEvent.MetadataParsed
to be emitted for inactive sources in a playlist when SCTE metadata is parsed for HLS content
Fixed
- Potentially wrong
timeshift
values after loading a source into a player that has played a live source before SourceEvent.Unloaded
not being emitted through thePlayer
when unloading the player- Video freezing when skipping an ad
- Duplicate
PlayerEvent.PlaybackFinished
being emitted when loading, unloading or pausing the player after playback has finished BufferApi.getLevel
returning the wrong buffer level when the next source in a playlist starts to load
Stable
6/8/2021
3.2.0
Added
TweaksConfiguration.useDrmSessionForClearSources
that specifies whether a DRM session should be used for clear sources in a playlist if they follow after a DRM protected source- Performance improvements when using the Bitmovin Web UI by caching values that are fetched frequently
Fixed
- TTML image subtitle positioning in
SubtitleView
- Potential crash when detaching and attaching a
Surface
to the player while playing non-DRM protected content and then detaching again when playing DRM protected content within the same playback session