When `player.reset` is called the `titleBar` component is not reset.
- Sets the properties `title` and `description` to `undefined` when `player.titleBar.update` is called so that the component is properly reset.
This issue occurs when the `player` has the class `vjs-show-big-play-button-on-pause`
and playback has started and then been set to `pause` and an `error` occurs.
- Avoids displaying `big-play-button` on error
When `player.reset` is called, the `errorDisplay` component is not reset, and neither is `player.error`.
- Sets `player.error` to `null`, so that the `player.errorDisplay` and `player.error` are correctly reset.
- Adds an `error` function to the `testPlayer` stub to prevent tests from failing.
This issue happen when the `player` has the class `vjs-show-big-play-button-on-pause` and a `seek` occurs,
resulting in the `loadingSpinner` being hidden behind the `bigPlayButton`.
- Avoids displaying `bigPlayButton` while `seeking`
When consecutive errors occur, the `ErrorDisplay` component is not updated with the new error message.
This results in an inconsistent state between the `player.error` and `player.errorDisplay.contentEl().textContent`.
| | player.error() | player.errorDisplay.content() | player.errorDisplay.contentEl().textContent |
| ----------------------- | -------------- | ----------------------------- | ------------------------------------------- |
| player.error('Error 1') | Error 1 ✔️ | Error 1 ✔️ | Error 1 ✔️ |
| player.error('Error 2') | Error 2 ✔️ | Error 2 ✔️ | Error 1 ❌ |
An example of a use case where updating the error message is useful is :
- user tries to play media 1 but the media doestn't exist
- user tries to play media 2 but the media is not compatible
- call the `close` function before each call to the `open` function.
- if errorDisplay is not **open**, the `close` function does nothing
- if errorDisplay is **open**, the `close` function executes and triggers the close events, then the open function executes and triggers the open events, ensuring that the content is updated.
The control bar is not displayed correctly when the display is locked because `.vjs-lock-showing` uses `display` `block` instead of `flex`.
- use `display` `flex` instead of `display` `block` when the control bar has `.vjs-lock-showing` class
- ensure that the control bar is not displayed if the `player` has classes:
- `.vjs-controls-disabled`
- `.vjs-using-native-controls`
- `.vjs-error`
When both the media URL and the poster return a response other than 200.
The media error is overwritten by an empty error, leaving the player in an inconsistent state.
- add a condition to `handleTechError_` to ensure that the `error` is truthy
- add a test case
Fixes#8409
* chore(package): Update VHS version
* get rid of kaios 2 from browserlist
* get rid of kaios 2
* get rid of op_mob 64
---------
Co-authored-by: Dzianis Dashkevich <ddashkevich@brightcove.com>
* Added the createNewLogger method, to create a logger without a naming chain.
* Added optional custom delimiter and custom styles.
* Several improvements in jsDoc for proper types(d.ts) generation.
---------
Co-authored-by: Dzianis Dashkevich <ddashkevich@brightcove.com>
Uses the same color as defined by the `color` property of the `video-js` class to apply to `svg icons` for easy customization
- set `fill` property to `currentColor`
Co-authored-by: mister-ben <git@misterben.me>
* fix(svg-icons): icon size consistency
The icons have been regenerated from the svg files in `videojs/font` to ensure consistency in size.
- update icons.svg file
* fix(svg-icons): default height and width in css
Uses the same reference value from the font size of `font icons` to define the default height and width of `svg icons`
* fix(big-play-button): default height and width of svg icon
Uses the same size as the big-play-button font size and centers the svg icon
* fix(volume-control): default height and width of svg icon
Uses the same size as the `volume-level` font size and
centers the svg icon for both horizontal and vertical display
* fix(volume-control): mouse-display overlaps the volume-level svg icon
* fix(play-progress): default height and width of svg icon
Uses the same size as the `play-progress` font size and removes the hover effect
* fix(subtitles-button): default height and width of svg icon
Uses the same size as the `subtitles button` font size
When an error occurs, only the error screen should be displayed to maintain visual consistency.
- Hides the Title Bar
- Hides the Loading Spinner
- Hides the Captions Settings
- Hides the Text Track Display
Svg play icon is missing when player is initialized with class `vjs-has-started`.
- add `setIcon` to the `play-toggle` component constructor
Fixes#8336