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.
3.72.0 - 2024-08-30
- Dutch (nl) subtitles
3.71.0 - 2024-08-28
- Link to API docs in README
3.70.0 - 2024-08-21
- Support for a new placeholder
{adBreakRemainingTime}
in AdMessageLabel that displays the remaining time in an ad break. Documentation on usage.
3.69.0 - 2024-08-14
- API doc generation and publishing. The API doc from the UI can be found here
3.67.0 - 2024-07-03
- Missing changelog entries of
3.65.0
and3.66.0
release versions
3.66.0 - 2024-07-01
- Playground demo page to include checkbox to enable/disbale ads
- Store basic configuration of playground demo page in localStorage
3.65.0 - 2024-06-24
- Eco Mode toggle button
3.64.0 - 2024-05-28
Component
instances are now assigned to theirHTMLElements
for easier accessing
- Two touch interactions needed to skip an ad or open the click through link
3.63.0 - 2024-05-17
QuickSeekButton
control bar component for jumping +/- a configurable number of seconds (10 second default)
3.62.0 - 2024-05-06
- No subtitle is shown when switching between different tracks
3.61.0 - 2024-04-23
ControlBar
not auto-hiding whenUIConfig.disableAutoHideWhenHovered
is set totrue
on some touch screen devices
3.60.0 - 2024-04-16
- Type export for
UIVariant
interface
3.59.0 - 2024-04-12
UIContainerConfig.hideImmediatelyOnMouseLeave
to immediately hide the UI when mouse leaves it
- Triggering UI release after merging a PR from a fork
3.58.0 - 2024-04-08
UIConfig#seekbarSnappingEnabled
config option to enable/disable the play head snapping to markers on the seek bar when seeking near them. Default istrue
.
3.57.0 - 2024-03-28
disableStorageApi
config option
- Subtitle settings not being retained when the UI variant switches
3.56.0 - 2024-03-26
localStorage
availability check to not create a test-entry anymore
3.55.0 - 2024-03-21
- Automatically add compare link in changelog file in relase workflow
- Missing compare link in the changelog file
3.54.0 - 2024-02-01
- FCC subtitle settings menu showing two options with the same value
- Invalid release workflow file
3.53.0 - 2024-01-03
- Automate release on every PR merge to develop
3.52.2 - 2023-11-23
- Potential name clashing in CSS animations due to missing
bmpui
prefix
3.52.1 - 2023-11-13
- Crash when receiving a
SourceLoaded
event during scrubbing
3.52.0 - 2023-09-25
- When having a spatial navigation and using a mouselike device, components will lose focus when the mouse leaves the hovered component. Spatial navigation will continue at the last active component when using arrow keys again.
3.51.0 - 2023-09-18
- On seek/timeshift operations the UI will only remove subtitle cues which do not enclose the seek target instead of removing all.
3.50.0 - 2023-07-24
- Settings panel does not close on single tap on mobile devices
- Restoring volume on unmute not working when volume was changed through the player API
- Gulp
watch
task not working
3.49.0 - 2023-07-17
onActiveUiChanged
event on theUIManager
that is dispatched when the UI manager switches to a different UI variant- Readonly
currentUi
field on theUIManager
that exposes the activeUIInstanceManager
3.48.0 - 2023-07-03
- When more than one UI with spatial navigation is managed by the UI manager, all UIs would handle key events, instead of only the active one.
3.47.0 - 2023-05-17
- Updated package dependencies.
3.46.0 - 2023-03-22
- Config option
forceSubtitlesIntoViewContainer
to 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
AudioTrackListBox
betweenmain.ts
anduifactory.ts
3.43.0 - 2023-02-06
UIConfig.enterFullscreenOnInitialPlayback
to enter fullscreen when clickingPlaybackToggleButton
orHugePlaybackToggleButton
to 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
display
method onErrorMessageOverlay
to 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:ss
tohh: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.enableSeekPreview
orSeekBarConfig.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-label
whenListBox
is 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
AudioTracks
inside theAudioTrackSelectBox
and theAudioTrackListBox
by 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
end
orright
3.27.0 - 2021-04-11
- Support for
CueUpdate
events that were introduced in player v8.60.0
- Ad times (
remainingTime
,playedTime
andadDuration
) are not correctly rounded
3.26.0 - 2021-03-30
TouchEvent
error 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
PlayerError
andSourceError
events
- Controls' focus highlighting is shown in case of non-keyboard interaction on some browsers/platforms
3.24.0 - 2021-02-16
- Support for
PlaylistTransition
event which is only present on Mobile V3
3.23.0 - 2021-01-14
- Default error message for code
1105
now uses the term "allowlist"
3.22.0 - 2020-12-22
UIConfig#disableAutoHideWhenHovered
config property to disable auto hiding of UI when an element inControlBar
is 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
SettingsPanel
goes blank sometimes when switching browser tab/window
3.16.0 - 2020-07-30
- Support for
images
onTimelineMarkers
- Changed
TimelineMarkers
rendering from using nooffset
andcss-border
towidth
andtranslateX
properties.
- Inconsistent
PlaybackToggleButton
state after transitioning between multipleAdBreak
s for the same position usingBitmovinAdvertisingModule
3.15.0 - 2020-07-23
- Listen to
ViewModeAvailabilityChanged
event and toggle visibility ofFullscreenToggleButton
andPictureInPictureToggleButton
accordingly - Support
TimelineMarkers
in live streams
- TypeScript update to 3.9.6
- Dead documentation link in README.md
FullscreenToggleButton
being visible althoughViewMode.Fullscreen
is not available- Vertical text alignment in the
MetadataLabel
for theMetadataLabelContent.Title
in theSmallScreenUI
- Seekbar snapping range is now configurable
- Subtitles partially hidden by player controls
- TTML
displayAlign = after
styling 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
onActive
andonInactive
not fired for rootSettingsPanelPage
whenSettingsPanel
was configured withhideDelay
of-1
- Automatic opening of the first select box when the
SettingsPanel
becomes 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
DurationChanged
event support
- Hide UI even a element in
ControlBar
is currently hovered
- Do not hide
SettingsPanel
inmodernSmallScreenUI
automatically
- Support for regions in TTML subtitles
- Thumbnail preview support for live streams
- UI no longer hides in
Prepared
,Paused
orFinished
state
- Ads UI not being hidden when the Player is unloaded during ad playback
PlaybackTimeLabelMode.RemainingTime
to display the remaining time of the content
- Improved documentation about time / number formats which can be used in
AdMessageLabel
placeholders - TypeScript update to 3.4.5
- Improved generic type inheritance of
Component
Config
s (#74)
- Incorrect calculation of
SettingsPanelPage
dimensions in transition animation - Navigation for more than two
SettingsPanelPage
s
- Support for player instances which inherits from the
BitmovinPlayer
ListBox
no 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
navigator
error
- Wrong state for live indicator when a
startTime
value is provided within theSourceConfig
of the player
- Crash of
UIContainer.release
when initialized withhideDelay: -1
- AirPlay icon does not change into active state
- Dispatch last event of a rate-limited event sequence to
Event.subscribeRateLimited
listeners
- Inaccurate time within
SeekBarLabel
on seek preview
simple.html
to test plain UI CSS without Bootstrap
- Stopping timeshift offset updater of
SeekBar
when player is destroyed box-sizing
style ofSeekBar
andSeekBarLabel
UIContainerConfig.userInteractionEventSource
to 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
,AudioQualityRemoved
events inAudioQualitySelectBox
/VideoQualitySelectBox
- Updated advertising UI support for player 8.1
- CSS selectors for all
SelectBox
components VolumeController
to control and manage volume and mute state by multipleComponent
s in a single placedisable()
/enable()
functionality toComponent
s- Preventing click event on a disabled
Button
- Advertising UI support
UIConditionContext.adRequiresUi
to distinguish if the current ad requires an external UI
UIConfig.playbackSpeedSelectionEnabled
is nowtrue
by default (as it was before v2.17.0)
- Deprecated
UIConditionContext#adClientType
as it's no longer supported by player v8
- Handling of
null
keys inSelectBox
(fixes subtitle deselection in IE11) - Unintended start of playback while scrubbing on seekbar
VolumeToggleButton
interfered player APIsetVolume
/mute
/unmute
calls
- Customization of output naming via CLI parameters (see
outputnames
ingulpfile.js
)
- Improved
Button
hit-boxes by changing margins to paddings Seekbar
/VolumeSlider
position markers changed from SVG to pure CSS to improve vertical alignment with barTimeout
rewritten for better efficiency
- Uncaught
PlayerAPINotAvailableError
inSeekBar
position updater when player is destroyed - Unresponsive UI when a user canceled connection establishment to a Cast receiver
- Avoid unnecessary animation when
BufferingOverlay
is hidden - Avoid unnecessary DOM modification when the text of a
Label
does not change - Positioning of
SettingsPanelPageOpenButton
in some browsers Timeout
could not be cleared from within the timeout callback function
- Positioning of
SeekBar
/VolumeSlider
markers improved - Crash of
UIManager.release
when 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
SettingsPanel
viaSettingsPanelPage
to enable navigation to sub-settings (#119) - Default
ErrorMessageTranslator
with english error messages for theErrorMessageOverlay
UIConfig.errorMessages
to allow customization of error messages via customErrorMessageTranslator
|ErrorMessageMap
play
andpause
calls during seeking now have the issuerui-seek
instead ofui
- Extracted/renamed
UIManager.Factory
toUIFactory
- Moved
UIConfig
,TimelineMarker
, andUIRecommendationConfig
fromuimanager.ts
touiconfig.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
SubtitleSettingsPanel
in favour ofSubtitleSettingsPanelPage
to 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
ListBox
to display multiple selectable items (#121) - Icon for subtitles
- Icon for audio tracks
- Demo section within the UI variants in the playground
- Demo with separate
SettingsPanel
s for subtitles and audio tracks UIContainerConfig.hidePlayerStateExceptions
option to configure player states in which the controls will not be hidden
- SmallScreenUI: Move
RecommendationOverlay
behindTitleBar
to avoid hiddenFullscreenToggleButton
in 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)
AirPlayToggleButton
tomodernSmallScreenUI
for MacOS devicesPictureInPictureToggleButton
tomodernSmallScreenUI
for MacOS devicesUIConfig.playbackSpeedSelectionEnabled
option to show/hidePlaybackSpeedSelectBox
within theSettingsPanel
PlaybackSpeedSelectBox
is no longer visible within theSettingsPanel
by default
- Apply the IE/Firefox workaround of v2.16.0 to hide the hovered dropdown panel of a
SelectBox
also when the UI hides
2.16.0 (2018-06-27)
- Revert state of
PlaybackToggleButton
to paused if a play attempt is rejected (ON_WARNING 5008
; e.g. in case of autoplay) UIManager
API to dynamically manageSeekBar
markers:getTimelineMarkers
,addTimelineMarker
,removeTimelineMarker
(#103)- Interval marking with added property
TimelineMarker.duration
(#103) - Custom CSS classes on markers in
SeekBar
andSeekBarLabel
throughTimelineMarker.cssClasses
(#103) ListSelectorConfig.filter
to filter items of auto-populatedSelectBox
implementations, e.g.SubtitleSelectBox
(#117)ListSelectorConfig.translator
to translate item labels of auto-populatedSelectBox
implementations, e.g.SubtitleSelectBox
(#117)
- Animate
HugePlaybackToggleButton
only on state changes (not when UI is initially loaded) - Hide
HugePlaybackToggleButton
play animation whenconfig.playback.autoplay
is enabled or the player is already playing - Consolidated configuration management of
UIConfig
from 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
SelectBox
floating after the parent container (e.g.SettingsPanel
) was hidden
2.15.0 (2018-06-08)
UIManager
API to switch UI variants:UIConfig.autoUiVariantResolve
,onUiVariantResolve
event,getUiVariants
,resolveUiVariant
,switchToUiVariant
(#102)
2.14.0 (2018-05-02)
License change from LGPLv3 to MIT.
- Subscribe to the
ON_PLAYBACK_SPEED_CHANGED
event to display the correct speed in thePlaybackSpeedSelectBox
- Prefer
on
/off
overaddEventHandler
/removeEventHandler
with player version 7.8+ to avoid deprecation log messages data-bmpui-volume-level-tens
attribute onVolumeToggleButton
for more granular styling of the volume icononClass
/offClass
configuration properties inToggleButtonConfig
to allow customizing the state marker CSS class names
- Removed
bmpui-low
marker class fromVolumeToggleButton
(replaced bydata-bmpui-volume-level-tens
attribute) - Renamed
VolumeToggleButton
mute state marker CSS class names fromoff
/on
tounmuted
/muted
- Change
VolumeToggleButton
into mute state when the player volume is set to0
(avoids transitions from zero volume to muted) - Set player volume to
10
when the player is unmuted and the volume is below10
(avoids transitions from muted to zero volume) - Removed volume level animation from
VolumeSlider
- Initialize
ToggleButton
state at UI configuration SettingsPanel
attempted to checkisActive
on non-SettingsPanelItem
components (e.g.CloseButton
)- User interaction passthrough from
HugePlaybackToggleButton
to player when autoplay is blocked SeekBar
bar 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
SeekBar
andVolumeSlider
bar indicators - "Concurrent" modification of event handlers in
EventDispatcher
when 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
SeekBar
markers was broken due to style changes in 2.11.0
2.11.0 (2017-12-22)
- Update
SeekBar
playback position of live streams with DVR window while playback is paused
- Switch off live edge indicator in
PlaybackTimeLabel
when a live stream is paused
- Stop
SeekBar
smooth playback position updates onON_PLAYBACK_FINISHED
- Centered
SeekBar
andVolumeSlider
drag handles and make sure that all layers of the underlying bar have the same height
2.10.5 (2017-11-20)
PlaybackToggleButton
now also listens toON_SOURCE_LOADED
andON_SOURCE_UNLOADED
to 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
nowrap
from CEA-608 style to correctly render multiline cues PlaybackToggleButton
now also listens toON_PLAYING
in 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
'sVolumeSlider
slide-in animation in the legacy skin to fix the slider knob at 100% bug
- Vertical
VolumeSlider
knob in legacy skin was not visible when set to a low volume - Legacy skin's
VolumeSlider
knob was always rendered at 100% when appearing after being hidden - Avoid
ItemSelectionList
DOM recreation on item selection to avoid unexpected events (e.g.mouseenter
)
2.10.0 (2017-09-14)
- Update
AudioQualitySelectBox
/VideoQualitySelectBox
entries when the period of a source changes
- Export bundled UI (
bitmovinplayer-ui.js
) as UMD module (instead of global module)
- Fix
Uncaught TypeError
whenrequire
ing 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
ui
issuer parameter to all applicable player API calls (seek, timeshift, mute, unmute, setVolume)
- Unified player API issuer parameter to always be
ui
instead ofui-{componentName}
- Select correct audio track after updating the items in
AudioTrackSelectBox
2.8.3 (2017-08-01)
- Use new quality change API in
AudioQualitySelectBox
andVideoQualitySelectBox
for player >= 7.3.1 (selection is now synced with player-APIset[Audio|Video]Quality
calls)
2.8.2 (2017-08-01)
Release of this version went wrong and it was unpublished from NPM.
- Fix
animate-slide-in-from-bottom
SCSS mixin (fixes missingVolumeSlider
slide-in animation ofVolumeControlButton
in the legacy skin) - Fire
ON_READY
event if UI is loaded after player is ready to initialize all components correctly
2.8.1 (2017-07-26)
- Early quality selection in
AudioQualitySelectBox
/VideoQualitySelectBox
beforeON_READY
broke players <= 7.2.5
2.8.0 (2017-07-25)
- Adds a
VolumeToggleButton
to 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
ListSelector
when the items are cleared - Updating selected value in
PlaybackSpeedSelectBox
when 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
VolumeSlider
andSeekBarLabel
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#container
config 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#hideTimeout
to -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#adClientType
to be able to switch to different UI variants for different ad types - Add
UIConditionContext#isPlaying
and resolve UI variants onON_PLAY
andON_PAUSED
to 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
, useadClientType
instead (isAdWithUI
equalscontext.adClientType === 'vast'
)
- Stop rendering loop of the
ErrorMessageOverlay
background 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
SubtitleOverlay
with HTML markup if available instead of the plain text - Update
AudioTrackSelectionBox
on newON_AUDIO_ADDED
/ON_AUDIO_REMOVED
events 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
PictureInPictureToggleButton
andAirPlayToggleButton
and 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
serve
task on HTML file changes - Fix
SeekBar
in 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
SubtitleOverlay
when 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, andonTextChanged
event toLabel
- Add
TitleBarConfig#keepHiddenWithoutMetadata
to keepTitleBar
hidden if metadata labels are empty
- Do not display
TitleBar
in Cast UI when it does not contain any metadata (title/description)
- Clear
SubtitleOverlay
when playback is finished
2.1.1 (2017-05-03)
- Update playback position / volume indicator position in
SeekBar
/VolumeSlider
when component is shown
2.1.0 (2017-05-02)
- Add
remote-control
marker class toUIContainer
that 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
CastStatusOverlay
font size and remove Cast icon (makes place for the playback toggle) in smallscreen UI - Move
PlaybackToggleOverlay
overCastStatusOverlay
in smallscreen UI to enable playback toggling
- Fix hiding of
HugePlaybackToggleButton
during Cast session initialization
2.0.4 (2017-04-28)
- Add
ErrorMessageOverlayConfig#messages
to 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
AirPlayToggleButton
for AirPlay support on MacOS and iOS (player 7.1+) - Add
PictureInPictureToggleButton
for 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
UIManager
constructor(player: Player, uiVariants: UIVariant[], config?: UIConfig)
for dynamic switching - Add new
UIManager
constructor(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
UIConfig
is 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
onConfigured
event toUIManager
which gets fired once UI is ready (configured and added to DOM) - Detect illegal circular references in UI component tree and throw error
- Add
VolumeSliderConfig#hideIfVolumeControlProhibited
flag to automatically hide the volume slider on platforms which prohibit programmatic volume control (currently only iOS) - Add mouse hover-state to
Component
isHovered()
returns the current hover-stateonHoverChanged
event withComponentHoverChangedEventArgs
is fired when the hover state changes
- Add
Spacer
component that just takes up space - Read timeline markers from player source config (
source.markers
) ifUIConfig
does not contain markers - Refresh timeline markers when a source is loaded/unloaded
- Read recommendations from player source config (
source.recommendations
) ifUIConfig
does not contain recommendations - Refresh
RecommendationOverlay
when a source is loaded/unloaded - Clear
MetadataLabel
when source is unloaded - Add
SeekBarConfig#smoothPlaybackPositionUpdateIntervalMs
to configure or disable smooth playback position updates on theSeekBar
- Delay displaying of the
BufferingOverlay
by 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
ErrorOverlay
when a new source is loaded - Hide
BufferingOverlay
when 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
PlaybackToggleButton
for 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 (
UIContainer
withHugePlaybackToggleButton
) - Decreased
HugePlaybackButton
,ErrorMessageOverlay
BufferingOverlay
, andSubtitleOverlay
font size in smallscreen UI - Hide
RecommendationOverlay
when source is unloaded - Listen to
ON_[AUDIO|VIDEO]_DOWNLOAD_QUALITY_CHANGE
events instead of*_CHANGED
inAudioQualitySelectBox
/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
UIManager
constructor(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
UIContainer
playback state class when creating UI in other states than idle and prepared - Correctly initialize
VolumeToggleButton
low/high volume icon state
1.0.1 (2017-02-10)
- Fix thumbnail preview on the seekbar label
- First release