When upgrading from release 1.7.0 to newer, you must clear your device local storage cache once to prevent a playback error due to changes in the format of the data that is written/read to/from the local storage. This is required only once at the time of upgrading from 1.7.0.
Fallback to AVC playlist during HEVC decoder init failures.
Support for PauseAds. A pauseAd overlay is rendered in an app-provided container when the user pauses playback. Requires the HLS master manifest to include the PauseAd #EXT-X-SESSION-DATA tag. Related additions:
Configs:
MKPlayerConfig.ssaiAdConfig.pauseAdEnabled: Enables SDK rendering of pauseAd overlays (default false; stays disabled when MKPlayerConfig.ui is enabled).
MKPlayerConfig.ssaiAdConfig.pauseAdView: Empty div element, attached to the document, into which the SDK renders the pauseAd overlay; the app owns its layout, styling and stacking.
MKPlayerConfig.enableAdTrackingBeacons: Must be true for the SDK to notify pauseAd tracking URLs (pause, resume, impression, complete).
APIs:
MKPlayerAPI.dismissPauseAd(): Dismisses the active pauseAd overlay or aborts pauseAd if overlay is yet to be rendered; Returns true only if an active overlay was removed, otherwise false.
MKPlayerAPI.isPauseAdActive(): Returns true while a pauseAd overlay is being shown.
Events:
MKPlayerEvent.PauseAdShown (MKPauseAdShownEvent): Fired when the pauseAd overlay has been rendered; carries the MKPauseAd object.
MKPlayerEvent.PauseAdDismissed (MKPauseAdDismissedEvent): Fired when the overlay is removed via dismissPauseAd(), on resume, or when the feature is disabled (AirPlay/cast/PiP) or torn down (source change, playback error).
MKPlayerEvent.PauseAdWarning (MKPauseAdWarningEvent): Fired on pauseAd issues such as image preload failure/timeout or a missing container; carries a message.
MKPlayerEvent.SessionData (MKSessionDataEvent): Fired when #EXT-X-SESSION-DATA tags of the HLS master manifest are parsed (PauseAd info URL is reported with type sessionDataPauseAd).
Interfaces:
MKPauseAd: Describes a pauseAd (creatives, non-linear static resource, render delay and tracking events).
MKSsaiAdConfig: Container interface for SSAI ad configs (excludePrerollFromVodDuration, pauseAdEnabled, pauseAdView).
Breaking change:excludePrerollFromVodDuration is moved from MKPlayerConfig to the new MKSsaiAdConfig. Applications must now set it as MKPlayerConfig.ssaiAdConfig.excludePrerollFromVodDuration; the old MKPlayerConfig.excludePrerollFromVodDuration has been removed.
[RefApp] Pause ad rendering, with dismiss button, in player and retail pages.
[RefApp] Ref app fetches the list of configured device categories and types. Provided an option to update the STS token for specific account based on the device type selection.
Fixed
Live event starts from live edge instead of program start time.
Beacon retries not functioning correctly.
[RefApp] When seeking to the middle of a midroll ad, duration keeps updating for the tuned-in ad and the SkipAd button is also functional.
[RefApp] Clear text storage of sensitive information (code scanning, High).
Playback Issue on live stream, 1208 error code displaying after successful CDN failover switch but the video plays in the background.
AdQuartile events are missing in refApp as well as in console logs for 2nd Ad if tune to the mid of midroll AdBreak.
Continuous/Multiple instances are printed for this "Skipping quartile events due to mid-ad tune-in" log in console logs when tune/seek to mid of AdBreak.
BB assets are not playing when BB configs are enabled.
[RefApp] ad event logs are not seen in console.
[RefApp] Unable to differentiate the audio tracks with different audio codec in settings menu for a multiAudio codecs asset playback.
[RefApp] Playback is not resuming from correct bookmark position.
Support for setting timeline markers in the default player UI progress bar to highlight key events during playback. Please refer to the API documentation for more information about these APIs and configurations.
Following new APIs are available from this release onwards:
addTimelineMarker to add a new timeline marker to the progress bar UI.
removeTimelineMarker to remove a previously added timeline marker from the progress bar UI.
getTimelineMarkers to get all previously added timeline markers to the progress bar UI.
MKSourceConfig.timelineMarkers to configure static list of timeline markers for VOD assets.
Please note that with this release, several MKPlayerAPI have been moved under dedicated namespaces and few have been renamed. Please make a note of the below changes as it will require you to make necessary updates/changes in your code if you upgrade to this version.
Added:
New API namespaces: (Please see API reference documentation for more information)
MKAdaptationAPI for player adaptation APIs
MKBufferAPI for player buffer APIs
MKDrmAPI for player DRM APIs
MKLowLatencyAPI for player low latency APIs
MKManifestAPI for player manifest APIs
MKSubtitlesAPI for player subtitles/captions APIs
offAll a new MKPlayerAPI to unregister/unsubscribe all event handlers for a given event type.
Support for Low latency for HLS/DASH, please refer to MKLowLatencyAPI in the documentation for more information.
MKTweaksConfig added to player configuration to enable/disable certain experimental tweaks on MKPlayer and Bitmovin player.
Support (not supported on Safari) for passing custom HTTP headers for HLS-AES sources which has license signalled in the manifest.
Fixed:
Support for passing wvLevel for WideVine DRM in DeviceProfile to TVP Backend.
Updated setHttpHeaders API to accept AuthorizationToken and generate signature for SecureURL if available and also set the given headers on the player requests.
Support for playback of Catchup, DVR (in-progress and regular) asset types
Support for selecting DVR type (assetised vs rolling buffer)
reload API to allow reloading the current source with a new start time and resume playback from specified startOffset after reload.
Support for program restrictions (program entitlements/PBR)
Support for Adobe Primetime session concurrency provided the configuration object is configured with necessary information.
Added MKErrorCode enum and documentation update with all the details on different error code and messages.
Fixed:
Playback issue on LG webOS devices. Replaced fetch with XMLHttpRequest for all HTTP requests in the SDK.
Fixed issue with handling sourceConfig.sourceOptions.startOffset correctly for different asset types.
Changed:
Bitmovin player updated to v8.122.0
Known Issues:
With recent update of MacOS and Safari browser, as of version 16.5.1 of Safari sometimes the live playback is starting from the beginning of the live window instead of the live edge.