All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Updated package dependencies.
- Config option
forceSubtitlesIntoViewContainerto handle overflowing subtitle labels
3.45.0 - 2023-03-06
- Scrubbing during a FaceTime call automatically creates a SharePlay suspension to not synchronize scrubbing to other participants.
3.44.0 - 2023-02-13
- Circular dependency in the import of
AudioTrackListBoxbetweenmain.tsanduifactory.ts
3.43.0 - 2023-02-06
UIConfig.enterFullscreenOnInitialPlaybackto enter fullscreen when clickingPlaybackToggleButtonorHugePlaybackToggleButtonto initiate the initial playback
3.42.0 - 2023-01-30
- Language localization for Spanish
3.41.0 - 2023-01-12
- Export Localization and SpatialNavigation to use in external UI configuration
3.40.0 - 2022-12-20
- Support for spatial navigation
- SmartTV UI via
UIFactory.buildDefaultTvUI
- Node.js from 10 to 16
- Typescript from ^3.9.6 to 4.3
3.39.0 - 2022-12-01
displaymethod onErrorMessageOverlayto enable usage for application errors without a player error- Replay button which can be used within the controlbar and works also during playback
- Unnecessary DOM element creation on release
3.38.0 - 2022-08-30
- Duration format not getting updated from
mm:sstohh:mm:ss
3.37.0 - 2022-04-12
- Incorrect line alignment for subtitle cues from WebVTT tracks.
- Incorrect edges of reference for vertical writing cues in block positioning from WebVTT tracks.
- An empty line is added in vertical subtitle cues.
3.36.0 - 2022-03-15
- Seek preview is now configurable via
UIConfig.enableSeekPrevieworSeekBarConfig.enableSeekPreview
3.35.0 - 2022-03-01
- npm install failure on node 16
3.34.0 - 2022-02-16
- Incorrect aria-label on playbackbutton toggle
3.33.0 - 2022-02-01
- Support for providing custom
aria-labelwhenListBoxis used.
- Updating the markers on live streams causing unhandled exception after player is destroyed.
3.32.0 - 2021-12-21
- The scrubber could jump to an old position during a seek operation when it was dragged.
- The Seekbar scrubber could jump to an old position on touch devices when the buffer updates during a seek operation.
3.31.0 - 2021-10-12
- Style reset for subtitle overlay element to prevent undesired CSS rules collisions.
3.30.0 - 2021-09-14
- Sort
AudioTracksinside theAudioTrackSelectBoxand theAudioTrackListBoxby their identifier.
3.29.0 - 2021-08-19
- An empty line being added to subtitle boxes when VTT positioning attributes are present.
3.28.1 - 2021-06-25
- Broken build for previous release
3.28.0
3.28.0 - 2021-06-22 [YANKED]
- VTT cue positioning when position alignment is
endorright
3.27.0 - 2021-04-11
- Support for
CueUpdateevents that were introduced in player v8.60.0
- Ad times (
remainingTime,playedTimeandadDuration) are not correctly rounded
3.26.0 - 2021-03-30
TouchEventerror in seekbar controls when using the mouse on a touchscreen Windows device and IE/UWP
3.25.0 - 2021-03-16
- Build step to publish releases to npm via CI
- Support for Mobile V3
PlayerErrorandSourceErrorevents
- Controls' focus highlighting is shown in case of non-keyboard interaction on some browsers/platforms
3.24.0 - 2021-02-16
- Support for
PlaylistTransitionevent which is only present on Mobile V3
3.23.0 - 2021-01-14
- Default error message for code
1105now uses the term "allowlist"
3.22.0 - 2020-12-22
UIConfig#disableAutoHideWhenHoveredconfig property to disable auto hiding of UI when an element inControlBaris currently hovered
- Exported builder method for
modernUI
3.21.0 - 2020-12-03
'type' : 'button'to buttons to prevent submitting forms
3.20.0 - 2020-11-25
- Wrapping possibly not enumerable properties of player object, like getters and setters
3.19.0 - 2020-11-10
- Subtitles not displayed in IE/tizen 2016 when no regions are present
3.18.0 - 2020-10-27
- Live-indicator stays active after stalling in live streams
3.17.0 - 2020-08-18
- Subtitle positioning when small screen UI is used and vtt properties are present
SettingsPanelgoes blank sometimes when switching browser tab/window
3.16.0 - 2020-07-30
- Support for
imagesonTimelineMarkers
- Changed
TimelineMarkersrendering from using nooffsetandcss-bordertowidthandtranslateXproperties.
- Inconsistent
PlaybackToggleButtonstate after transitioning between multipleAdBreaks for the same position usingBitmovinAdvertisingModule
3.15.0 - 2020-07-23
- Listen to
ViewModeAvailabilityChangedevent and toggle visibility ofFullscreenToggleButtonandPictureInPictureToggleButtonaccordingly - Support
TimelineMarkersin live streams
- TypeScript update to 3.9.6
- Dead documentation link in README.md
FullscreenToggleButtonbeing visible althoughViewMode.Fullscreenis not available- Vertical text alignment in the
MetadataLabelfor theMetadataLabelContent.Titlein theSmallScreenUI
- Seekbar snapping range is now configurable
- Subtitles partially hidden by player controls
- TTML
displayAlign = afterstyling case
- TTML subtitles region alignment
- Position alignment for VTT subtitles
- Default selection not highlighted in AudioTrackListBox and SubtitleListBox
- Clear subtitles list when source is unloaded
- Support for regions in VTT subtitles
- UI hiding when actively using seek or volume slider
- Empty background boxes with TTML subtitles on Chromecast
- Web Content Accessibility (WCAG) 2.0
- Keyboard controls for sliders when focused
onActiveandonInactivenot fired for rootSettingsPanelPagewhenSettingsPanelwas configured withhideDelayof-1- Automatic opening of the first select box when the
SettingsPanelbecomes visible on iOS devices
- UI flickering back and forth on live streams after ads
- Build errors when using the npm package
- Outdated live asset sample
- Localization
DurationChangedevent support
- Hide UI even a element in
ControlBaris currently hovered
- Do not hide
SettingsPanelinmodernSmallScreenUIautomatically
- Support for regions in TTML subtitles
- Thumbnail preview support for live streams
- UI no longer hides in
Prepared,PausedorFinishedstate
- Ads UI not being hidden when the Player is unloaded during ad playback
PlaybackTimeLabelMode.RemainingTimeto display the remaining time of the content
- Improved documentation about time / number formats which can be used in
AdMessageLabelplaceholders - TypeScript update to 3.4.5
- Improved generic type inheritance of
ComponentConfigs (#74)
- Incorrect calculation of
SettingsPanelPagedimensions in transition animation - Navigation for more than two
SettingsPanelPages
- Support for player instances which inherits from the
BitmovinPlayer
ListBoxno longer recreates itself after the list was updated
- UI not hiding after selecting an item within a
ListBox
- Allow npm package to be imported in server side app without
navigatorerror
- Wrong state for live indicator when a
startTimevalue is provided within theSourceConfigof the player
- Crash of
UIContainer.releasewhen initialized withhideDelay: -1
- AirPlay icon does not change into active state
- Dispatch last event of a rate-limited event sequence to
Event.subscribeRateLimitedlisteners
- Inaccurate time within
SeekBarLabelon seek preview
simple.htmlto test plain UI CSS without Bootstrap
- Stopping timeshift offset updater of
SeekBarwhen player is destroyed box-sizingstyle ofSeekBarandSeekBarLabel
UIContainerConfig.userInteractionEventSourceto allow tracking of user interaction events (which toggle the visibility of certain components like theControlBar) on a custom element
- Avoid unnecessary updating of hidden
AdSkipButton - Upgrade to Gulp 4 (#208)
- Default UI does not show any UI variant during an ad without UI requirement
- Support for
VideoQualityAdded,VideoQualityRemoved,AudioQualityAdded,AudioQualityRemovedevents inAudioQualitySelectBox/VideoQualitySelectBox
- Updated advertising UI support for player 8.1
- CSS selectors for all
SelectBoxcomponents VolumeControllerto control and manage volume and mute state by multipleComponents in a single placedisable()/enable()functionality toComponents- Preventing click event on a disabled
Button - Advertising UI support
UIConditionContext.adRequiresUito distinguish if the current ad requires an external UI
UIConfig.playbackSpeedSelectionEnabledis nowtrueby default (as it was before v2.17.0)
- Deprecated
UIConditionContext#adClientTypeas it's no longer supported by player v8
- Handling of
nullkeys inSelectBox(fixes subtitle deselection in IE11) - Unintended start of playback while scrubbing on seekbar
VolumeToggleButtoninterfered player APIsetVolume/mute/unmutecalls
- Customization of output naming via CLI parameters (see
outputnamesingulpfile.js)
- Improved
Buttonhit-boxes by changing margins to paddings Seekbar/VolumeSliderposition markers changed from SVG to pure CSS to improve vertical alignment with barTimeoutrewritten for better efficiency
- Uncaught
PlayerAPINotAvailableErrorinSeekBarposition updater when player is destroyed - Unresponsive UI when a user canceled connection establishment to a Cast receiver
- Avoid unnecessary animation when
BufferingOverlayis hidden - Avoid unnecessary DOM modification when the text of a
Labeldoes not change - Positioning of
SettingsPanelPageOpenButtonin some browsers Timeoutcould not be cleared from within the timeout callback function
- Positioning of
SeekBar/VolumeSlidermarkers improved - Crash of
UIManager.releasewhen player instance was already destroyed
Major release for Bitmovin Player 8, mainly adjusted to the changed player API. For player 7, please use UI v2.x.
- Support for image subtitles
- Paging support for
SettingsPanelviaSettingsPanelPageto enable navigation to sub-settings (#119) - Default
ErrorMessageTranslatorwith english error messages for theErrorMessageOverlay UIConfig.errorMessagesto allow customization of error messages via customErrorMessageTranslator|ErrorMessageMap
playandpausecalls during seeking now have the issuerui-seekinstead ofui- Extracted/renamed
UIManager.FactorytoUIFactory - Moved
UIConfig,TimelineMarker, andUIRecommendationConfigfromuimanager.tstouiconfig.ts - Replaced local player type definitions with type definitions from the bitmovin-player NPM package
- Everything deprecated in 2.x
- Player v7 feature detections and compatibility fallbacks
SubtitleSettingsPanelin favour ofSubtitleSettingsPanelPageto use with the new navigation feature ofSettingsPanel- Player v6 legacy skin (
skin-legacy) and its UI variants - Disabled the ads UI variants because there is no ads module in player v8 yet that requires a UI (ads UI will be reintroduced with an upcoming release)
- Type definitions are now generated correctly and referenced from
package.json - Update timeline markers when loading a new source
- Flickering playback position indicator when switching to a live-stream
2.18.0 (2018-08-08)
- UI element
ListBoxto display multiple selectable items (#121) - Icon for subtitles
- Icon for audio tracks
- Demo section within the UI variants in the playground
- Demo with separate
SettingsPanels for subtitles and audio tracks UIContainerConfig.hidePlayerStateExceptionsoption to configure player states in which the controls will not be hidden
- SmallScreenUI: Move
RecommendationOverlaybehindTitleBarto avoid hiddenFullscreenToggleButtonin replay screen and prevent smartphone users from exiting fullscreen - SmallScreenUI: Do not hide controls in replay screen
2.17.1 (2018-08-01)
- Rendering of single-image thumbnails
- Local storage detection in Firefox
2.17.0 (2018-07-10)
AirPlayToggleButtontomodernSmallScreenUIfor MacOS devicesPictureInPictureToggleButtontomodernSmallScreenUIfor MacOS devicesUIConfig.playbackSpeedSelectionEnabledoption to show/hidePlaybackSpeedSelectBoxwithin theSettingsPanel
PlaybackSpeedSelectBoxis no longer visible within theSettingsPanelby default
- Apply the IE/Firefox workaround of v2.16.0 to hide the hovered dropdown panel of a
SelectBoxalso when the UI hides
2.16.0 (2018-06-27)
- Revert state of
PlaybackToggleButtonto paused if a play attempt is rejected (ON_WARNING 5008; e.g. in case of autoplay) UIManagerAPI to dynamically manageSeekBarmarkers:getTimelineMarkers,addTimelineMarker,removeTimelineMarker(#103)- Interval marking with added property
TimelineMarker.duration(#103) - Custom CSS classes on markers in
SeekBarandSeekBarLabelthroughTimelineMarker.cssClasses(#103) ListSelectorConfig.filterto filter items of auto-populatedSelectBoximplementations, e.g.SubtitleSelectBox(#117)ListSelectorConfig.translatorto translate item labels of auto-populatedSelectBoximplementations, e.g.SubtitleSelectBox(#117)
- Animate
HugePlaybackToggleButtononly on state changes (not when UI is initially loaded) - Hide
HugePlaybackToggleButtonplay animation whenconfig.playback.autoplayis enabled or the player is already playing - Consolidated configuration management of
UIConfigfrom components intoUIManager - Configuration from the player source now takes precedence over the configuration passed into the
UIManager
- IE & Firefox could leave the dropdown panel of an active/hovered
SelectBoxfloating after the parent container (e.g.SettingsPanel) was hidden
2.15.0 (2018-06-08)
UIManagerAPI to switch UI variants:UIConfig.autoUiVariantResolve,onUiVariantResolveevent,getUiVariants,resolveUiVariant,switchToUiVariant(#102)
2.14.0 (2018-05-02)
License change from LGPLv3 to MIT.
- Subscribe to the
ON_PLAYBACK_SPEED_CHANGEDevent to display the correct speed in thePlaybackSpeedSelectBox - Prefer
on/offoveraddEventHandler/removeEventHandlerwith player version 7.8+ to avoid deprecation log messages data-bmpui-volume-level-tensattribute onVolumeToggleButtonfor more granular styling of the volume icononClass/offClassconfiguration properties inToggleButtonConfigto allow customizing the state marker CSS class names
- Removed
bmpui-lowmarker class fromVolumeToggleButton(replaced bydata-bmpui-volume-level-tensattribute) - Renamed
VolumeToggleButtonmute state marker CSS class names fromoff/ontounmuted/muted - Change
VolumeToggleButtoninto mute state when the player volume is set to0(avoids transitions from zero volume to muted) - Set player volume to
10when the player is unmuted and the volume is below10(avoids transitions from muted to zero volume) - Removed volume level animation from
VolumeSlider
- Initialize
ToggleButtonstate at UI configuration SettingsPanelattempted to checkisActiveon non-SettingsPanelItemcomponents (e.g.CloseButton)- User interaction passthrough from
HugePlaybackToggleButtonto player when autoplay is blocked SeekBarbar levels and scrubber positioning in Android 4.4 WebView
2.13.0 (2018-03-15)
- Consistent UI's prepared state detection by only looking at the player's ready state
2.12.1 (2018-02-21)
- Flickering heights of
SeekBarandVolumeSliderbar indicators - "Concurrent" modification of event handlers in
EventDispatcherwhen a handler is unsubscribed by a handler
2.12.0 (2018-01-22)
- Execute volume control availability test on dummy media element to prevent unexpected interference with muted autoplay
- Positioning of
SeekBarmarkers was broken due to style changes in 2.11.0
2.11.0 (2017-12-22)
- Update
SeekBarplayback position of live streams with DVR window while playback is paused
- Switch off live edge indicator in
PlaybackTimeLabelwhen a live stream is paused
- Stop
SeekBarsmooth playback position updates onON_PLAYBACK_FINISHED - Centered
SeekBarandVolumeSliderdrag handles and make sure that all layers of the underlying bar have the same height
2.10.5 (2017-11-20)
PlaybackToggleButtonnow also listens toON_SOURCE_LOADEDandON_SOURCE_UNLOADEDto properly update the playback state when the source changes- Update package dependencies
- Apply CEA-608 style to subtitles before they are added to the DOM to avoid "style flickering"
- Unnecessary line breaks in CEA-608 texts
2.10.4 (2017-10-30)
- Remove
nowrapfrom CEA-608 style to correctly render multiline cues PlaybackToggleButtonnow also listens toON_PLAYINGin addition toON_PLAY
2.10.3 (2017-10-20)
- Handling of whitespaces in CEA-608 texts
2.10.2 (2017-10-19)
- Rewritten CEA-608 text layouting
- Greatly simplified CEA-608 CSS style (
.{prefix}-ui-subtitle-overlay.{prefix}-cea608) - Calculate CEA-608 font size only with active CEA-608 cues
- Overlapping CEA-608 texts with large player aspect ratios
2.10.1 (2017-10-13)
- Removed
VolumeControlButton'sVolumeSliderslide-in animation in the legacy skin to fix the slider knob at 100% bug
- Vertical
VolumeSliderknob in legacy skin was not visible when set to a low volume - Legacy skin's
VolumeSliderknob was always rendered at 100% when appearing after being hidden - Avoid
ItemSelectionListDOM recreation on item selection to avoid unexpected events (e.g.mouseenter)
2.10.0 (2017-09-14)
- Update
AudioQualitySelectBox/VideoQualitySelectBoxentries when the period of a source changes
- Export bundled UI (
bitmovinplayer-ui.js) as UMD module (instead of global module)
- Fix
Uncaught TypeErrorwhenrequireing UI before player - Don't write UI into global namespace (
bitmovin.playerui) when loaded as module withrequire
2.9.0 (2017-08-24)
- Support CEA-608 subtitle positioning
- Added
uiissuer parameter to all applicable player API calls (seek, timeshift, mute, unmute, setVolume)
- Unified player API issuer parameter to always be
uiinstead ofui-{componentName}
- Select correct audio track after updating the items in
AudioTrackSelectBox
2.8.3 (2017-08-01)
- Use new quality change API in
AudioQualitySelectBoxandVideoQualitySelectBoxfor player >= 7.3.1 (selection is now synced with player-APIset[Audio|Video]Qualitycalls)
2.8.2 (2017-08-01)
Release of this version went wrong and it was unpublished from NPM.
- Fix
animate-slide-in-from-bottomSCSS mixin (fixes missingVolumeSliderslide-in animation ofVolumeControlButtonin the legacy skin) - Fire
ON_READYevent if UI is loaded after player is ready to initialize all components correctly
2.8.1 (2017-07-26)
- Early quality selection in
AudioQualitySelectBox/VideoQualitySelectBoxbeforeON_READYbroke players <= 7.2.5
2.8.0 (2017-07-25)
- Adds a
VolumeToggleButtonto the small screen UI
- Moved all subtitle styling to CSS (default subtitle style is not overwritten any longer)
- Fix clearing of container components with
Container#removeComponents(fixes sticky/duplicate subtitle issue) - Fix updating container components with
Container#updateComponents(fixes empty subtitles in IE11) - Fix handling of duplicate subtitle cues (same text at same time) in
SubtitleOverlay(fixes another sticky subtitle issue) - Fix clearing of recommendations in
RecommendationOverlay(fixes duplicate recommendations issue) - Reset selected value in
ListSelectorwhen the items are cleared - Updating selected value in
PlaybackSpeedSelectBoxwhen player is ready - Fix video quality options for progressive streams (removed 'auto' option, preferred quality preselected)
2.7.1 (2017-07-06)
- Throttled high-frequency API calls to the player from the
VolumeSliderandSeekBarLabel
2.7.0 (2017-06-28)
- Add support for FCC compliant closed captions. Adds options on how captions are displayed, and a SubtitleSettingsPanel with the possibility to update the settings while playing the video.
- Add UI version property to global namespace (
bitmovin.playerui.version) - Add
UIConfig#containerconfig property to specify a custom place in the DOM where the UI will be put into. Can be used to place it somewhere else beside the default player figure.
2.6.0 (2017-06-27)
- Add an option to keep the UI always visible by setting the
UIContainerConfig#hideTimeoutto -1
- Thumbnail size is no longer determined by the physical image size and can now be arbitrarily set by CSS
2.5.1 (2017-06-26)
No functional changes. Improves player API declarations, code linting configuration, and adds contribution guidelines.
2.5.0 (2017-06-13)
- Add
UIConditionContext#adClientTypeto be able to switch to different UI variants for different ad types - Add
UIConditionContext#isPlayingand resolve UI variants onON_PLAYandON_PAUSEDto be able to switch between different UI variants for playing and paused states
- NPM entry point changed from browserified standalone distributable file to CommonJS module (NPM package can now be used with Node and Browserify out-of-the-box)
- Deprecated
UIConditionContext#isAdWithUI, useadClientTypeinstead (isAdWithUIequalscontext.adClientType === 'vast')
- Stop rendering loop of the
ErrorMessageOverlaybackground canvas when UI is released - Fix wrapped control bar in modern skin on iOS 8.2
2.4.0 (2017-06-08)
- Resolve UI variants on
ON_READY - Improved UI variant switching by detecting the end of an ad when loading a new source during ad playback
- Fix subtitle line breaking
2.3.0 (2017-06-01)
UI does not crash any more when used with player 7.0, all other restrictions explained in 2.0.0 still apply.
- Display subtitles in
SubtitleOverlaywith HTML markup if available instead of the plain text - Update
AudioTrackSelectionBoxon newON_AUDIO_ADDED/ON_AUDIO_REMOVEDevents in player 7.1.4 / 7.2.0
- Detect live streams and time shift availability when configuring dependent components (
PlaybackTimeLabel,PlaybackToggleButton,SeekBar) to adjust their mode independently from the player state changes - Skip configuration of
PictureInPictureToggleButtonandAirPlayToggleButtonand hide the components if functionality is not supported (when used with player 7.0)
- Fix settings panel closing when an option select box is open
- Fix crash of Gulp
servetask on HTML file changes - Fix
SeekBarin legacy skin did not hide onhide() - Fix missing audio track selection box in Safari with player 7.1.2 and 7.1.3
- Fix error in
SubtitleOverlaywhen trying to remove an already cleared subtitle cue
2.2.0 (2017-05-05)
- Add
Container#removeComponents()to remove all child components of a container - Display multiple subtitle cues in parallel in
SubtitleOverlay - Add
getText()method,isEmpty()method, andonTextChangedevent toLabel - Add
TitleBarConfig#keepHiddenWithoutMetadatato keepTitleBarhidden if metadata labels are empty
- Do not display
TitleBarin Cast UI when it does not contain any metadata (title/description)
- Clear
SubtitleOverlaywhen playback is finished
2.1.1 (2017-05-03)
- Update playback position / volume indicator position in
SeekBar/VolumeSliderwhen component is shown
2.1.0 (2017-05-02)
- Add
remote-controlmarker class toUIContainerthat is applied during an active remote control session (e.g. Cast session) - Display play/pause button in smallscreen UI during an active remote control session (e.g. Cast session)
- Adjust
CastStatusOverlayfont size and remove Cast icon (makes place for the playback toggle) in smallscreen UI - Move
PlaybackToggleOverlayoverCastStatusOverlayin smallscreen UI to enable playback toggling
- Fix hiding of
HugePlaybackToggleButtonduring Cast session initialization
2.0.4 (2017-04-28)
- Add
ErrorMessageOverlayConfig#messagesto translate and customize error messages in theErrorMessageOverlay
2.0.3 (2017-04-25)
No functional changes. Fixes typo in the changelog.
2.0.2 (2017-04-25)
No functional changes. Adds a prepublish script to the NPM package so an incomplete version like 2.0.0 cannot happen to be published again.
2.0.1 (2017-04-24)
No functional changes. Fixes an incomplete NPM package published for 2.0.0, which has been unpublished.
2.0.0 (2017-04-24)
Version 2.0 of the UI framework is built for player 7.1. If absolutely necessary, it can still be used with player 7.0, but certain restriction apply: Casting will not work correctly due to API improvements and a removed workaround, new components based on added API calls will fail (AirPlayToggleButton, PictureInPictureToggleButton) and need to be removed from the default UI, seeking before playback won't work due to a removed workaround, and audio/video quality changes through the API won't be picked up by the select boxes due to misnamed events.
- Add
AirPlayToggleButtonfor AirPlay support on MacOS and iOS (player 7.1+) - Add
PictureInPictureToggleButtonfor picture-in-picture support on MacOS and iOS (player 7.1+) - Add dynamic switching between different UIs based on various context properties (screen size, ads, mobile, fullscreen)
- Add new
UIManagerconstructor(player: Player, uiVariants: UIVariant[], config?: UIConfig)for dynamic switching - Add new
UIManagerconstructor(player: Player, ui: UIContainer, config?: UIConfig)for simple cases with only one UI instance - Automatically display smallscreen UI on mobile devices in default modern UI
- Add new
- Read metadata (title/description) from player source config if metadata in
UIConfigis empty - Refresh metadata when a new source is loaded into the player
- Add
release()method to components to release resources and dependencies created duringconfigure(...) - Add
onConfiguredevent toUIManagerwhich gets fired once UI is ready (configured and added to DOM) - Detect illegal circular references in UI component tree and throw error
- Add
VolumeSliderConfig#hideIfVolumeControlProhibitedflag to automatically hide the volume slider on platforms which prohibit programmatic volume control (currently only iOS) - Add mouse hover-state to
ComponentisHovered()returns the current hover-stateonHoverChangedevent withComponentHoverChangedEventArgsis fired when the hover state changes
- Add
Spacercomponent that just takes up space - Read timeline markers from player source config (
source.markers) ifUIConfigdoes not contain markers - Refresh timeline markers when a source is loaded/unloaded
- Read recommendations from player source config (
source.recommendations) ifUIConfigdoes not contain recommendations - Refresh
RecommendationOverlaywhen a source is loaded/unloaded - Clear
MetadataLabelwhen source is unloaded - Add
SeekBarConfig#smoothPlaybackPositionUpdateIntervalMsto configure or disable smooth playback position updates on theSeekBar - Delay displaying of the
BufferingOverlayby 1 second to bypass short stalls without the distraction of the overlay (configurable withBufferingOverlayConfig#showDelayMs)
- Update Cast support for new Cast implementation in player 7.1
- Permanently display UI during a Cast session
- No more use of the player's global namespace
- Hide
ErrorOverlaywhen a new source is loaded - Hide
BufferingOverlaywhen source is unloaded - Do not attempt to show/hide components if they are already in the target state
- Display stop icon instead of pause icon on the
PlaybackToggleButtonfor live streams without timeshift - UI is no longer hidden while a control in the controlbar is hovered
- Instead of requiring two touches to start playback, the first touch now reveals UI and triggers playback at the same time (
UIContainerwithHugePlaybackToggleButton) - Decreased
HugePlaybackButton,ErrorMessageOverlayBufferingOverlay, andSubtitleOverlayfont size in smallscreen UI - Hide
RecommendationOverlaywhen source is unloaded - Listen to
ON_[AUDIO|VIDEO]_DOWNLOAD_QUALITY_CHANGEevents instead of*_CHANGEDinAudioQualitySelectBox/VideoQualitySelectBox(download events were broken/misnamed in player 7.0)
- Remove all transitions and animations from Cast receiver UI due to low rendering performance on Chromecast devices
- Remove Cast workarounds/hacks required for old Cast implementation in player 7.0
- Remove seek-before-play workaround (now directly supported by player 7.1)
- Remove
UIManagerconstructor(player: Player, playerUi: UIContainer, adsUi: UIContainer, config?: UIConfig), use new constructor withUIVariant[]instead - Disable smooth seekbar update in Cast receiver UI for increased Chromecast performance
- Fix seekbar position indicator when seeking before playback
- Fix unloading/releasing of UI
- Fix wrong volume slider / seekbar positioning on UI startup and after loading a source
- Fix missing component exports to global JS namespace
- Fix timeshift support on live streams where timeshifting is not available from the beginning
- Fix wrongly detected live state of HLS streams in Chrome on Android
- Fix seekbar position update when player is already playing at UI initialization (e.g. when autoplay is enabled)
- Fix wrong
UIContainerplayback state class when creating UI in other states than idle and prepared - Correctly initialize
VolumeToggleButtonlow/high volume icon state
1.0.1 (2017-02-10)
- Fix thumbnail preview on the seekbar label
- First release