Android SDK - v2 Release Notes

⚠️ This page contains Release Notes for the V2 version (UNSUPPORTED) of the SDK. You can find the current, V3 release notes here.


2.70.1

Released: 2021-09-28

Fixed

  • CompatibilityHelper visibility to be public again to allow configuration of offline content serialization

Removed

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

2.70.0

Released: 2021-08-03

Added

  • PlaybackConfiguration.setAudioFilter() and PlaybackConfiguration.setVideoFilter() that can be used to set a new MediaFilter to specify how strictly potentially unsupported media tracks and qualities are filtered out of a playback session.
  • TweaksConfiguration.devicesThatRequireSurfaceWorkaround to workaround a potential problem with some device's Surface implementation.

Changed

  • 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 BitmovinPlayer.getAvailableAudio(), BitmovinPlayer.getAvailableAudioQualities() and BitmovinPlayer.getAvailableVideoQualities(). PlaybackConfiguration.setAudioFilter() and PlaybackConfiguration.setVideoFilter() can be used to set a different MediaFilter to make the filtering more strict or to not filter at all

2.69.1

Released: 2021-07-29

Fixed

  • Possible crash near end of stream with subtitles enabled

2.69.0

Released: 2021-07-20

Fixed

  • Possible crash near end of stream with subtitles enabled
  • Wrong text positioning when using the BitmovinSubtitleView
  • EventMessage.durationMs returning nonsensical value when the duration is unknown

Changed

  • MetadataParsedEvent for DASH EventStream metadata is now emitted as soon as the manifest is parsed instead of near the start time of the metadata
  • EventMessage.durationMs is now nullable and is null if the duration of the metadata event is unknown

2.68.1

Released: 2021-06-22

Fixed

  • Duplicate PlaybackFinishedEvent being emitted when loading, unloading or pausing the player after playback has finished
  • Potentially wrong timeshift values after loading a source into a player that has played a live source before

2.68.0

Released: 2021-06-08

Added

  • Performance improvements when using the Bitmovin Web UI by caching values that are fetched frequently

Fixed

  • TTML image subtitle positioning in BitmovinSubtitleView

2.67.0

Released: 2021-05-26

Added

  • BufferConfiguration.startupThreshold to configure the minimum amount of seconds of playback data to buffer before starting playback for the first time
  • BufferConfiguration.restartThreshold to configure the minimum amount of seconds of playback data to buffer before starting playback again after a stall

Fixed

  • Potential RemoteServiceException when setting an OfflineConfig

2.66.1

Released: 2021-05-11

Fixed

  • Potential crash when starting playback during a cast session
  • Potential selection of wrong tracks when downloading HLS content
  • UI always becoming visible after exiting PiP, ignoring previously set visibility
  • Progressive content not being downloaded for offline playback

Changed

  • Reopened BitmovinPlayerView to allow for inheritance again. This class will be final starting with 3.0.0, so it is not recommended to directly inherit it if existing workflows don't depend on it.

2.66.0

Released: 2021-04-27

Added

  • TweaksConfiguration.shouldApplyTtmlRegionWorkaround that specifies if default positioning values should be assumed when parsing TTML regions in case of unsupported TTML features.
  • StyleConfig.scalingMode for specifying the initial ScalingMode. The default value is ScalingMode.Fit
  • UserInterfaceApi.scalingMode for dynamically updating the ScalingMode
  • PlayerEvent.ScalingModeChanged, which is emitted from the PlayerView to indicate that the ScalingMode of the PlayerView changed.

Fixed

  • Crash when seeking very often in a short time
  • Crash on pre API 24 devices, due to usage of Java 8 API

Changed

  • Updated Koin dependency to 2.2.2

2.65.0

Released: 2021-04-13

Added

  • Support for side-loaded SubtitleTracks when casting to a v3 (CAF) receiver

Fixed

  • Starting a cast session during client-side ad playback causes the local playback to continue side by side with the cast playback
  • HLS streams including both #EXT-X-PLAYLIST-TYPE:EVENT and #EXT-X-ENDLIST being incorrectly identified as live instead of VoD streams

[2.64.0]

Added

  • TweaksConfiguration.shouldEmitAllPendingMetadataOnStreamEnd that specifies if MetadataEvents should be emitted for pending metadata when reaching the end of a stream
  • Properties sendManifestRequestsWithCredentials, sendSegmentRequestsWithCredentials and sendDrmLicenseRequestsWithCredentials to the RemoteControlConfiguration to control cookies and credentials on requests made on Chromecast CAF (v3) receivers

Fixed

  • Text tracks reported with SUBTYPE_NONE from a CAF receiver are not considered as subtitle tracks

Changed

  • Update play-services-cast-framework to 19.0.0

2.63.0

Released: 2021-03-02

Fixed

  • Local playback starts although cast device is connected when PlaybackConfiguration.isAutoplayEnabled is set to true

2.62.1

Released: 2021-03-10

Added

  • TweaksConfiguration.useDrmSessionForClearPeriods that specifies whether a DRM session should be used for clear video and audio tracks

2.62.0

Released: 2021-02-16

Added

  • Image Media Playlist thumbnail support for VOD HLS sources

Fixed

  • Potentially wrong SCTE-35 start time in metadata events

2.61.0

Released: 2021-02-02

Added

  • ImpressionEvent to indicate successful impression calls

Fixed

  • Inconsistent and jumping timeShift values while playing back live-streams

2.60.0

Released: 2021-01-19

Added

  • TweaksConfiguration.useFiletypeExtractorFallbackForHls for tweaking HLS extractor fallback behaviour
  • metadata property on the SourceItem that is passed to cast receivers along the source

Fixed

  • Available video qualities include trick play tracks
  • Trick play tracks being wrongfully selected by the ABL

2.59.0

Released: 2020-12-22

Changed

  • PlayEvent, PlayingEvent, PausedEvent and TimeChangedEvent are now also emitted during ad playback

2.58.0

Released: 2020-12-9

Added

  • PlayerAPI.currentVideoFrameRate to fetch the currently playing video frame rate from the player
  • BeforeInitializationCallback to gain access to the ImaSdkSettings

Fixed

  • Missing DRM key download for HLS assets if the DRM information is not contained in the master playlist
  • HLS offline playback errors due to ambiguous track downloads
  • Player becoming unresponsive when a scheduled IMA playlist returns no valid ads

2.57.0

Released: 2020-11-24

Added

  • OnSourceLoadListener, which is called with a SourceLoadEvent when a source starts loading

2.56.0

Released: 2020-11-10

Added

  • Support for controlling audio tracks when using a CAF (v3) receiver
  • minTimeShiftBufferDepth to the LiveConfiguration for more control over the timeshift behavior
  • Improved support for multiple MetaData tracks

Fixed

  • Potential crash when setting the OfflineConfiguration later in the app lifecycle

2.55.0

Released: 2020-10-27

Added

  • Support for subtitles loaded from manifest when using a CAF (v3) receiver
  • HttpRequestType.MEDIA_PROGRESSIVE for progressive sources
  • Support to modify HTTP responses via the PreprocessHttpResponseCallback. This callback is not called for progressive sources.
  • startTime property to Metadata objects

Fixed

  • Erroneous emitted MetadataEvents when seeking over SCTE metadata.
  • Potential NullPointerException when configuring a LowLatencyConfiguration and playing back a live stream

Changed

  • Moved VR API to a separate BitmovinPlayer.vr namespace

2.54.0

Released: 2020-10-13

Fixed

  • Potential NullpointerException when the UI is disabled
  • OfflineOptionEntry.state not correctly updating after recreating an OfflineContentManager for a downloaded source.
  • Crash when configuring a CAF (v3) receiver

Changed

  • Moved LowLatency API to a separate BitmovinPlayer.lowLatency namespace

2.53.0

Released: 2020-09-29

Added

  • AdsManagerAvailableCallback to gain access to the IMA AdsManager currently in use once it becomes available
  • OnDrmDataParsedListener, which is called with an OnDrmDataParsedEvent when Widevine PSSH boxes in HLS manifests are parsed
  • Support for DASH and HLS ads when using the IMA SDK

Known Issues

  • While the Player is able to play DASH and HLS ads with the IMA SDK, there is currently a problem when DASH ads are correctly defined as having the mime type "application/dash+xml" in the VAST XML. As a workaround, defining the mime type as "application/x-mpegURL" for DASH ads leads to them playing successfully. We are looking into removing this limitation

2.52.0

Released: 2020-09-15

Added

  • GoogleCastReceiverVersion for defining the version of the used cast receiver
  • BitmovinCastManager.initialize(applicationId, googleCastReceiverVersion, messageNamespace) for advanced cast setup
  • BitmovinCastManager.initialize(googleCastReceiverVersion) for convenient default setups
  • BitmovinCastManager.sendMetadata(metadata) for sending custom metadata to the cast receiver
  • BitmovinPlayer.load call that accepts a SourceItem directly
  • SourceItem.options to mirror the start offset functionality that exists on the SourceConfiguration
  • DrmRequest as subclass of HttpRequest to expose the Widevine PSSH box in the DRM key requests PreprocessHttpRequestCallback
  • MetadataParsedEvent for inbound metadata in DASH streams

Fixed

  • Potential selection of wrong track when downloading HLS / SmoothStreaming content
  • Replay not working during casting

Deprecated

  • BitmovinCastManager.initialize(applicationId, messageNamespace, castControllerActivity). Use BitmovinCastManager.initialize(applicationId, googleCastReceiverVersion, messageNamespace, castControllerActivity) instead.
  • BitmovinCastManager.initialize(applicationId, messageNamespace). Use BitmovinCastManager.initialize(applicationId, googleCastReceiverVersion, messageNamespace) instead.
  • SourceConfiguration in favor of directly using a SourceItem
  • BitmovinPlayer.load(SourceConfiguration) in favor of BitmovinPlayer.load(SourceItem)

2.51.0

Released: 2020-08-18

Added

  • IMA SDK companion ad support by accepting a list of CompanionAdContainers in the AdvertisingConfiguration

Fixed

  • enableTouchControl and disableTouchControl API calls not working correctly
  • Possibility of IllegalArgumentException when seeking backwards in stream with SCTE tags present

2.50.0

Released: 2020-08-04

Added

  • DRMConfiguration.shouldKeepDrmSessionsAlive. If set to true, DRM sessions will be kept alive after a source is unloaded. This allows DRM sessions to be reused for several different source items if they share both - the same DRM configuration as well as the same DRM scheme information

Fixed

  • BitmovinDownloadService is not stopping itself after all downloads are completed

Changed

  • Improved foreground service startup handling in BitmovinDownloadService on SDK level 26 and higher
  • Upgrade to IMA SDK version 3.19.4 and Google Play Services Ads to 19.3.0

2.49.0

Released: 2020-07-07

Fixed

  • Parcelable.Creator implementations causing unresolved supertypes error when using from Kotlin
  • Race condition that lead to a NullpointerException when an IMA ad playlist with an empty VAST tag was scheduled
  • Disabling subtitles during casting does not work when using Bitmovin Player UI v3+
  • Player crash on Android 4.4.4 and below

2.48.0

Released: 2020-06-23

Fixed

  • Changing manually to AUTO video quality results in ignoring viewport and max bitrate limit
  • Possibility of IllegalStateException when OfflineContentManager.getOfflineContentManager was called at the same time from multiple threads

Changed

  • OfflineContentManagerListener.onProgress() download progress indicator increments continuously.

2.47.0

Released: 2020-06-08

Added

  • OfflineTweaksConfiguration to the OfflineConfiguration
  • shouldAutomaticallyHandleDrmLicenses flag to the OfflineTweaksConfiguration, which allows disabling automatic DRM handling in the offline workflow
  • Possibility to schedule progressive sources as ads
  • AdSourceType.PROGRESSIVE to allow scheduling of progressive ads

Fixed

  • DRM license request is triggered for non DRM tracks when downloading assets for offline usage

2.46.0

Released: 2020-05-26

Added

  • AdaptationConfiguration.preload for disabling preloading
  • BitmovinPlayer.preload for starting preloading when AdaptationConfiguration.preload is set to false
  • OnAdManifestLoadListener, which is called with an AdManifestLoadEvent when the download of an ad manifest starts

2.45.0

Released: 2020-05-12

Added

  • Support to modify HTTP requests for media segments (Video, Audio, Subtitles) and AES-128 keys via the PreprocessHttpRequestCallback
  • DownloadFinishedEvent for media segments (Video, Audio, Subtitles) and AES-128 keys
  • TTML region positioning support when using the Web UI v3

Fixed

  • Potential crash when SourceOptions.startOffset was set
  • Calling OfflineContentManager.deleteAll() while downloading more than one track renews the DRM license

2.44.0

Released: 2020-04-28

Added

  • PlayerConfiguration.key to be able to overwrite the Bitmovin license key that is used for a specific player instance.

Fixed

  • Play after playback finished throws an exception if SCTE tags are present

2.43.0

Released: 2020-04-14

Added

  • Possibility to inject external Caches into the player using TweaksConfiguration.exoPlayerCache

Fixed

  • Title not shown when a custom WebUI based on version 3+ is used
  • TTML positioning information not being respected in case origin and extent attributes are missing. Now, default values for origin of 0% 0% and extent of 100% 100% are assumed so that the remaining positioning information can be respected properly

Changed

  • Exceptions that occur in an EventListener are now posted to the main thread instead of silently caught

2.42.0

Released: 2020-03-31

Added

  • Support for negative MPEGTS values in X-TIMESTAMP-MAP of WebVTT files
  • Track.roles to provide the DASH Roles that are associated with the Track

Changed

  • Default horizontal and vertical position in the CueEnterEvent if no positioning is detected in the source

2.41.2

Released: 2020-03-23

Fixed

  • OnSubtitleChangedEvent is only triggered when disabling subtitles

2.41.1

Released: 2020-03-17

Fixed

  • Crash when trying to write SubtitleTrack to Parcel on devices running Android 9 or below.

2.41.0

Released: 2020-03-16

Added

  • TweaksConfiguration.languagePropertyNormalization property for disabling language tag normalization to IETF BCP 47 language tags
  • ImaAdData.traffickingParameters to provide trafficking parameters associated with an ad when using the IMA SDK
  • PreprocessHttpRequestCallback for manifest requests
  • WarningEvent for tracks where automatic adaptive switching is not supported
  • TweaksConfiguration.localDynamicDashWindowUpdateInterval property for tweaking the local DASH window update interval

Fixed

  • Error when downloading DASH content with additional track groups for offline use
  • Active offline downloads not suspending and resuming automatically when losing and re-establishing a network connection
  • Thread safety of OfflineContentManager.release

Changed

  • LinearAd.duration to not be nullable anymore as the duration is always available for linear ads
  • VastAdData.delivery to be of enum type MediaFileDeliveryType instead of a plain String as it can only have one of two values

2.40.0

Released: 2020-03-02

Added

  • BitmovinPlayer.getPlaybackAudioData functionality to provide information about the currently playing audio content
  • Support for forced subtitles in DASH and HLS
  • Possibility to dynamically define forced subtitles via PlaybackConfiguration.forcedSubtitleCallback

Fixed

  • Compiler error when extending the BitmovinDownloadService in kotlin
  • MetadataEvent not being fired for EMSG messages not containing ID3 data

2.39.0

Released: 2020-02-17

Added

  • Fallback when releasing a widevine DRM license and the Server does not permit the action
  • initialize_player boolean XML-Attribute to BitmovinPlayerView to allow inflating from layout without creating a BitmovinPlayer instance.
  • ClearKeyConfiguration for configuring ClearKey DRM streams
  • initialize_player boolean XML-Attribute to BitmovinPlayerView to allow inflating from layout without creating a BitmovinPlayer instance
  • hideFirstFrame parameter to StyleConfiguration. This parameter can be used to prevent rendering of the first video frame before playback starts

Fixed

  • Wrong character encoding of Bitmovin Player UI
  • Positioning of text captions in the BitmovinSubtitleView
  • Visibility of BitmovinDownloadState
  • ExpandedControllerActivity crashing on opening

2.38.0

Released: 2020-02-07

Added

  • Possibility to configure basic values for PlaybackConfiguration, SourceConfiguration and StyleConfiguration via XML on the BitmovinPlayerView

Changed

  • Android Support Libraries are replaced by AndroidX libraries Migration Guide
  • Parameter type TaskState of BitmovinDownloadManager.onTaskStateChanged is replaced by BitmovinDownloadState Migration Guide

2.37.0

Released: 2019-12-09

Added

  • replaceContentDuration functionality also for live content. This parameter can be used on initialization of the according AdItem to specify how many seconds the ad break should replace of the main video content.

Fixed

  • Freezed player state after an empty VAST ad response
  • OfflineContentManager now throws a dedicated IllegalStateException if it is used after being released (instead of crashing due to a NullPointerException).

[2.36.1]

Fixed

  • Inconsistent behavior with startOffset in combination with autoPlay

2.36.0

Released: 2019-11-25

Added

  • startOffset and startOffsetTimelineReference in the SourceConfiguration for defining an offset for the stream's start position

Deprecated

  • getVideoBufferLength and getAudioBufferLength. Use BufferAPI#getLevel instead.

2.35.0

Released: 2019-11-11

Added

  • AdManifestLoaded event after an ad manifest has finished downloading, which includes information about the download timing and the AdBreak, or the AdConfiguration for ad tags that do not result in an AdBreak like VMAP tags
  • Introduce BufferAPI namespace including the getLevel and setTargetLevel API call

Changed

  • AdBreakStarted and AdBreakFinished events now include information about the active AdBreak
  • AdStarted, AdFinished and AdSkipped events now include information about the active Ad
  • AdClicked event now includes the clickThroughUrl if triggered through the IMA SDK
  • AdError event now includes the AdConfiguration that caused the error, if this information is available
  • Whenever an additional sender wants to connect to an already running cast session, the according receiver app gets restarted

[2.34.1]

Fixed

  • Bitmovin Web UI v3 (>= 3.9) is not loaded correctly

2.34.0

Released: 2019-10-28

Changed

  • licenseRenewable property to the DRMConfiguration, indicating if the license is renewable
  • downloadLicense() to the OfflineContentManager to download and store an DRM license
  • releaseLicense() to the OfflineContentManager to release an already downloaded and stored DRM license

2.33.0

Released: 2019-10-22

Added

  • Possibility to tweak the bandwidth estimation algorithm with the bandwidthEstimateWeightLimit property in the TweaksConfiguration

Fixed

  • Crash if the player fails to synchronize it's system time with a provided synchronisation configuration, after a previous successful synchronisation.

2.32.0

Released: 2019-10-14

Added

  • Property data to the ErrorEvent to provide additional information

Fixed

  • SeekedEvent is sometimes sent without a preceding SeekEvent
  • Touching the live button (or duration label) results in UI staying visible
  • Crash of download service when used in very slow networks

2.31.0

Released: 2019-09-30

Added

  • replaceContentDuration property to the AdItem to specify how many seconds the ad break should replace of the main video content
  • AdQuartileEvent to provide progress during ad playback.
  • Possibility to set the interval of the TimeChangedEvent in the newly added TweaksConfiguration

Fixed

  • When seeking over multiple ads, the ad specific UI is not visible.
  • Bitmovin player license errors where not always shown in the Web UI

Changed

  • The impression will be tracked after the main content or a pre-roll ad started playback

2.30.0

Released: 2019-09-16

Added

  • Possibility to disable cast functionality via property castEnabled in the RemoteControlConfiguration.
  • Convenience method BitmovinCastManager.sendMessage for sending messages to the cast receiver.
  • liveEdgeOffset property to the LiveConfiguration

Fixed

  • Player is stuck when seeking over multiple ads
  • UI sometimes shows buffering overlay after ad playback

Changed

  • Update IMA SDK to 3.11.3 and google play ads SDK to 17.1.2
  • Update Cast SDK to 16.1.2

2.29.0

Released: 2019-09-02

Added

  • Property lastRedirectLocation to the DownloadFinishedEvent
  • DownloadFinishedEvent also for manifest downloads
  • Fire LicenseValidatedEvent after receiving a valid Bitmovin player license response
  • ParcelUtil for handling Parcelable

Fixed

  • Poster image sometimes doesn't vanish if autoplay is used
  • Crash caused by IndexOutOfBoundsException under specific circumstances

2.28.0

Released: 2019-08-08

Added

  • Meaningful exception if the context was not updated using BitmovinCastManager#updateContext(Context) before calling castVideo

2.27.1

Released: 2019-08-05

Fixed

  • SubtitleSelectBox not updating in Web UI v3 when changing the subtitles via setSubtitle API call
  • High memory and CPU utilization while downloading

2.27.0

Released: 2019-07-19

Added

  • Support for SCTE tags in HLS playlists

Fixed

  • Inconsistent download progress after network switching or when app is closed and reopened

2.26.0

Released: 2019-07-11

Added

  • Possibility to communicate between a custom Bitmovin Player UI and the native environment by using a CustomMessageHandler which can be set on the BitmovinPlayerView

Fixed

  • Downloader threads get terminated too early which could lead to download errors and incomplete downloads

2.25.3

Released: 2019-07-08

Fixed

  • Issue that user subtitle styling was not stored
  • getSubtitle now returns a SubtitleTrack with identifier 'off' in case no subtitle is selected

2.25.2

Released: 2019-06-11

Added

  • Fire ErrorEvent when DRM keys expire during playback

2.25.1

Released: 2019-05-27

Fixed

  • OfflineContentManager#deleteAll() does not work properly, when called in SUSPENDED state

2.25.0

Released: 2019-05-13

Added

  • OfflineOptionEntryState#FAILED

Changed

  • FAILED OfflineOptionEntrys are automatically rescheduled for download and can be additionally started with OfflineContentManger.resume()

2.24.0

Released: 2019-04-30

Changed

  • Default value for parallel track and segment downloads increased from 1 to 3

Added

  • SeekMode in the PlaybackConfiguration to configure the seek accuracy
  • Requirements can be set on the OfflineConfiguration, so the BitmovinDownloadService doesn't have to be extended

Fixed

  • Suspended downloads should not be resumed after a network change
  • Crash under special conditions, when a BitmovinPlayer with a live stream is released during playback

Deprecated

  • OfflineContentManager#setOfflineConfiguration(OfflineConfiguration)

2.23.1

Released: 2019-04-17

Fixed

  • Crash under special conditions, when the BitmovinPlayer is released
  • Default notification behavior for the offline feature
  • Download background service life-cycle problems with suspended downloads
  • Thumbnails with missing position parameters are not rendered correctly in UI

Changed

  • Representation downloads can be downloaded parallel

2.23.0

Released: 2019-04-03

Added

  • Support for simultaneous segment download

Fixed

  • Position values of bitmap subtitles are not set

2.22.0

Released: 2019-03-28

Changed

  • Instead of throwing a SourceError the player now stalls if the network connection is lost

Added

  • Bitmovin UI v3 support

2.21.0

Released: 2019-03-08

Added

  • Possibility to set maxSimultaneousDownloads via an OfflineConfiguration on the OfflineContentManager.

2.20.1

Released: 2019-02-26

Added

  • Codec property to the quality model classes (VideoQuality, AudioQuality)

Fixed

  • Handle edge case to prevent NullPointerException
  • Only start download of the currently scheduled asset. Keep suspended downloads suspended.
  • Crash of download background service when network changes

2.20.0

Released: 2019-02-19

Added

  • Support for low latency live streaming
  • Support for external time synchronization
  • AdSourceType UNKNOWN
  • API call getUsedStorage on OfflineContentManager to check the used disk space
  • ErrorEvent from the OfflineContentManager when the download fails due to insufficient storage

2.19.1

Released: 2019-02-11

Fixed

  • Storing offline content on external storage

2.19.0

Released: 2019-01-17

Fixed

  • Deserialization of Widevine HTTP header configuration.
  • MetadataEvent not being emitted for EMSG data in HLS streams

Added

  • Support to download ThumbnailTracks with the offline API

2.18.1

Released: 2018-12-21

Fixed

  • Obfuscation of methods in the BitmovinDownloadService and OfflineContent

2.18.0

Released: 2018-12-20

Added

  • Possibility to extend the BitmovinDownloadService to customize notifications.

Fixed

  • The network API (NetworkConfiguration) changed the http method of requests to POST if no request body was set.
  • Subtitles are missing in the OfflineContentOptions.
  • Crash under certain conditions when BitmovinPlayer.destroy() is called

2.17.1

Released: 2018-12-5

Added

  • OfflineContentManager calls onProgress after its creation if content is not completely downloaded yet.

Fixed

  • Crash after calling suspend after deleteAll on an OfflineContentManager instance.
  • StringIndexOutOfBoundsException for thumbnail files which do not provide dimensions for potential sub-images

2.17.0

Released: 2018-11-13

Added

  • PrepareMessageCallback and PrepareLicenseCallback to the WidevineConfiguration
  • onStop to the BitmovinPlayerView and the BitmovinPlayer

Fixed

  • Seeking to negative numbers is not handled gracefully
  • Play button is visible while video is playing after pre-roll ad

2.16.0

Released: 2018-10-24

Added

  • Key rotation support for Widevine DRM streams
  • Possibility to set startup bitrate in AdaptationConfiguration

Fixed

  • Video content is not visible when android:background property is defined in the Android theme
  • Crash under certain conditions when BitmovinPlayer.destroy() is called

2.15.0

Released: 2018-10-8

Added

  • DownloadFinishedEvent for DRM license requests
  • Support for custom receiver configuration values (key/value pairs) within the RemoteControlConfiguration

2.14.1

Released: 2018-10-3

Added

  • First version of CHANGELOG.md
  • Allow attaching/detaching a BitmovinPlayer to/from a BitmovinPlayerView

Changed

  • Change order of requesting PiP mode and firing the event

Removed

  • Setter for URL and Type in MediaSource

Fixed

  • Crash when creating an OfflineSourceItem, when offline DRM is not supported
  • ErrorEvents are propagated when the DRM license download fails.
  • Subtitle (SRT) cues are not displayed or not displayed long enough when they have overlapping times
  • Crash when no metadata are present in the AndroidManifest
  • Crash when widevine security level can't be changed, but is set in the configuration