1
0
mirror of https://github.com/videojs/video.js.git synced 2024-12-21 01:39:04 +02:00
Commit Graph

74 Commits

Author SHA1 Message Date
BrainCrumbz
6221a8f078
fix(middleware): cache grows even if no middleware created (#8674)
## Description
See issue #8653 

## Specific Changes proposed
When in `middleware.js` the function `clearCacheForPlayer` runs, before
setting a value to null in middlware caches, it checks if the key exists
in the first place.

## Requirements Checklist
- [x] Feature implemented / Bug fixed
- [x] If necessary, more likely in a feature request than a bug fix
- [x] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [ ] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [x] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [ ] Reviewed by Two Core Contributors

---------

Co-authored-by: Giuseppe Piscopo <g.piscopo@braincrumbz.com>
Co-authored-by: mister-ben <git@misterben.me>
2024-07-06 07:44:37 +01:00
mister-ben
1afe5049e6
feat: Adds a transient button component (#8629)
## Description
Adds a `TransientButton` component for the types of button that are
shown on top of the video briefly during playback and reappear when
there is user activity. e.g. Unmute buttons, skip intro. It aims is to
be a generic button type to be extended. Some basic styles are provided
but kept light to not complicate customisation.
It's important to insert a transient button before the control bar for
the tab order to make sense.

_Optionally_ takes focus when shown.

## Specific Changes proposed
Adds `TransientButton` component.

## Requirements Checklist
- [x] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [x] Change has been verified in an actual browser (Chrome, Firefox,
IE)
  - [x] Unit Tests updated or fixed
  - [ ] Docs/guides updated
- [x] Example:
https://deploy-preview-8629--videojs-preview.netlify.app/sandbox/transient-button.html
- [x] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
  - [x] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
2024-07-06 07:40:31 +01:00
Walter Seymour
6fc0dc783a
feat: Add useSVGIcons option (#8260) 2023-06-12 13:31:06 -05:00
BrainCrumbz
dc1e2bb42a
fix(shadow-dom): prevent warning 'element supplied is not included' (#8192)
Co-authored-by: Giuseppe Piscopo <g.piscopo@braincrumbz.com>
2023-06-06 17:24:30 -04:00
mister-ben
0c72805500
feat: Add document picture-in-picture support (#8113)
Co-authored-by: François Beaufort <beaufort.francois@gmail.com>
2023-04-04 16:44:16 -04:00
Usman Omar
8f3f32cb2b
feat: add skip forward/backward buttons (#8147)
* remove duplicate icons from icon example

* create initial forward and back button classes

* add logic for back/forward buttons on click

* change icon used based on option passed into player

* move logic from forward and back buttons into one component

* add jsdoc comments for clarity

* create initial test file

* refactor button logic into separate files

* update skip button example and add test files

* test both the forward and backward buttons

* test handleClick fns for both forward and backward btns

* update skip buttons example

* update jsdocs for skip backward and forward buttons

* make control text accessible and use seekableEnd/Start when skipping forward/back

* update font version to use updated icons

* set control text only if config is valid

* add link to sandbox page & use localization

* update translations needed
2023-03-06 09:51:59 +00:00
Usman Omar
2c7eea889a
chore: upgrade videojs-font to 4.0.0 (#8117)
* upgrade videojs-font to 4.0 & update icons example

* update css content to use font 4.0 unicodes
2023-02-10 17:41:49 +00:00
Grzegorz Blaszczyk
54195f0b28 feat: add support for a list of quality levels (#7897)
This brings the videojs-contrib-quality-levels plugin into Video.js as a feature.
2022-11-23 09:49:32 -05:00
Pat O'Neill
91f4663ea5 ignore: update @videojs/http-streaming to 3.0 release candidate (#7884)
Co-authored-by: Sarah Rimron-Soutter <sarah@teaandbiscuits.net>
2022-11-23 09:49:30 -05:00
Roman Pougatchev
706983caa3 feat: Remove references and logic related to Flash and SWF (#7852)
* remove flash references, update comments & tests

* remove references to swf & stageclick listener
2022-11-23 09:49:26 -05:00
Pat O'Neill
a5e7222353 feat(lang): use less ambiguous text for the fullscreen button when in fullscreen mode (#7856) 2022-11-23 09:49:25 -05:00
Pat O'Neill
5d165dc33c feat: add a new title bar component (#7788) 2022-11-23 09:49:25 -05:00
mister-ben
0211d736de
chore(docs): use https URLs in noUITitleAtttributes example (#7809) 2022-08-02 12:38:05 -04:00
Gary Katsevman
8f580ccc81
chore(sandbox): update embeds media to use public url (#7530) 2021-11-16 12:20:01 -05:00
Robert J. Berger
749105d32c
feat: Add userAction.click to prevent pause/play when player is clicked (#7495)
Pass `false` as `userAction.click` to disable the default click-to-play behavior. Alternatively, pass in a function, to enable custom behavior.

Fixes #7123.
2021-11-10 14:06:25 -05:00
Owen Edwards
5f59391a74
feat: Add a player option noUITitleAttributes to prevent title attributes in the UI (#7134)
Fixes #6767
2021-03-23 17:47:16 -04:00
Brandon Casey
ba47953851
chore: video.js debug build (#7082)
Adds a debug build to video.js that does the following:
- Exposes DomData on video.js. DomData our internal event tracking object and should be empty on player dispose.
- Set log level to debug by default.
2021-02-18 10:00:42 -05:00
mister-ben
503141c75f
docs: Remove Flash (#6994) 2020-12-22 14:10:53 -05:00
Gary Katsevman
ca2d78fcd4
chore(sandbox): switch all urls to https (#6946) 2020-11-16 15:13:27 -05:00
Grzegorz Blaszczyk
dbd5203a0b
feat: adds disablePictureInPicture method to the player API. (#6378) 2020-04-22 12:41:21 -04:00
Thomas
c61f3d3e49 feat: allow displaying of multiple text tracks at once (#5817)
This allows the user to display multiple tracks when
`allowMultipleShowingTracks` is passed to the `TextTrackDisplay`.
Currently, multiple tracks must be shown programmatically and cannot be
done via the subtitles menus.

In addition, this adds two new classes to cue elements:
`vjs-text-track-cue` and `vjs-text-track-cue-${track.language}`. This
allows easier targetting with CSS.

Example usage:
```js
var player = videojs('example-video', {
  textTrackDisplay: {
    allowMultipleShowingTracks: true
  }
});
```

Fixes #5798.
2019-06-18 15:42:39 -04:00
Brandon Casey
1eb47f0690 chore: add a sandbox page for testing autoplay values. (#5933) 2019-04-29 14:45:02 -04:00
Brandon Casey
8e43cff122 chore: add a sandbox for HLS (#5897) 2019-03-28 15:35:00 -04:00
Owen Edwards
61053bf674 feat: add hotkeys support ("m", "f", "k", and Space) (#5571)
Extend keyboard support for the SeekBar, and pass unhandled keydown events from components back to the player.
Switch from raw keycodes to the keycode module.

Using `userActions.hotkeys`, which can either be a function to match the hotkeys plugin, or an object with properties like `fullscreenKey`, see the documentation for more info.

This is currently off by default, we will consider turning it on by default in the future, see #5765.

Fixes #4048, fixes #3022.
2019-01-25 14:10:29 -05:00
Gary Katsevman
62f9e78cf2
docs: remove grunt and update usage of build scripts (#5656) 2018-12-05 16:12:21 -05:00
Brandon Casey
2974ad3db7 feat: support seeking during live playback via liveui option (#5511)
When liveui is enabled, allow seeking during the live window, add button that allows you to seek to the live edge and that indicates whether you are at the live edge or not.
2018-12-03 15:31:23 -05:00
Brandon Casey
d72786fc0c chore: remove grunt move to npm scripts (#5592) 2018-11-30 16:37:29 -05:00
Brandon Casey
5f73f76a11 chore: move scss grunt tasks to npm scripts (#5520) 2018-10-25 15:45:08 -04:00
Grzegorz Blaszczyk
b8fe624f9e fix: add support for :focus-visible selector (#5483)
Add support for focus-visible so that mouse-users don't need to see focus outlines but keyboard and Screen Reader users still do. It includes both the standard selector and the selector intended to work with the polyfill: https://github.com/WICG/focus-visible.
The polyfill is *not* included in Video.js and must be included on the page separately.

Fixes #5474.
2018-10-25 15:23:13 -04:00
Pat O'Neill
6df3ac78d4 feat: Add responsive option, which enables breakpoints support. (#5496)
Follow-up for #5471

This makes the breakpoints option and `breakpoints()` method clearer and introduces the responsive option and `responsive()` method, which will turn on the breakpoints.

The return value of `currentBreakpoint()` was simplified to only ever return a string (empty if none).

Also, added convenience methods: `responsive()`, `getBreakpointClass()`, and `currentBreakpointClass()`.
2018-10-11 17:03:33 -04:00
Pat O'Neill
51bd49f4bc feat: Add breakpoints option to support toggling classes based on player width. (#5471)
This adds a breakpoints option. By default, this option is false meaning this is an opt-in feature.

When passing true, it will use a default set of breakpoints. Or custom breakpoints can be passed if users do not like our breakpoints (or previously-existing style decisions).

- Add breakpoints option.
- Adds some new (currently unused) classes: vjs-layout-medium, vjs-layout-large, vjs-layout-x-large, and vjs-layout-huge.
- Add updateCurrentBreakpoint and currentBreakpoint methods to the player.
- Update css/components/_adaptive.scss
- Add sandbox/responsive.html.example

Closes videojs/video.js#4371
2018-10-10 15:30:20 -04:00
Owen Edwards
0aa827fac5 fix(time-display): restore hidden label text for screen readers. (#5157)
Restore hidden label text for screen readers that describes what the button control does.

Renames the Duration Time language item to Duration.

Deprecate controlText_ property.

Fix a typo in translations-needed.md.

Add a space in the hidden label for live-display, so that it doesn't run together with the visible "LIVE" indication.

Fixes #5135
2018-05-11 14:34:33 -04:00
Gary Katsevman
bc2da7c67b
refactor: remove IE8 specific changes (#5041)
BREAKING CHANGE: remove IE8, IE9, and IE10 specific JavaScript and CSS code. Remove Android 2.3 workaround.
2018-03-23 13:25:12 -04:00
ldayananda
bf3eb45a37 feat: add mediator middleware type for play() (#4868)
This will allow middleware to interact with calls to play() from the tech. This will require a method of indicating to middleware previously run that a middleware down the chain has terminated or stopped execution.

* Adds middleware mediator method that runs middleware from the player to the tech and a second time back up to the player. This category was created because play is both a setter(changes the playback state) and a getter(gets a native play promise if available). This also has the ability to tell whether a middleware has terminated before reaching the tech.
* Adds a middleware.TERMINATOR sentinel value that is available on the videojs object
* Adds play to the allowedMediators
* Adds paused to the allowedGetters
* Adds a sandbox example of a play mediator middleware
2018-01-30 11:30:42 -05:00
Gary Katsevman
8b54737646
chore: generate a test example on netlify for PRs (#4912) 2018-01-30 11:17:41 -05:00
Gary Katsevman
d8aadd5bee
feat: allow embeds via <video-js> element (#4640)
Add the ability to initialize Video.js with an element named video-js. This is because sometimes, seeing the native element is undesirable, plus, it's cool to have our own element.
Can be used just like the video embed.
IE9 is supported but only with dynamic sources as the source element can only be used inside of the video element.
2017-11-13 14:20:05 -05:00
Pat O'Neill
c4bbe5d120 chore(sandbox): Fix paths in sandbox files. (#4416) 2017-06-27 09:51:05 +10:00
Gary Katsevman
c31836c30c feat: Use Rollup to generate dist files (#4301) 2017-05-25 19:40:35 -04:00
Owen Edwards
f773c473f9 chore: Fix examples and docs and some links (#4279)
* Fix the doc/example/elephantsdream/index.html file, add an index of doc/examples, and update CDN links to use video.js v5.19.
* Add poster from CDN to Elephants Dream examples.
2017-05-11 17:16:12 -04:00
Owen Edwards
5ffe1cd49e chore(sandbox): Fix poster image to match the video in the 'combined-tracks.html' example in sandbox (#4164) 2017-03-06 17:21:18 -05:00
mister-ben
74eb5d4772 feat: Combine captions and subtitles tracks control (#4028) 2017-03-02 15:23:41 -05:00
Owen Edwards
715f5847da chore(sandbox): Use Elephants Dream video files from CDN for the sandbox/descriptions.html.example. (#4137) 2017-02-27 13:53:32 -05:00
Brandon Casey
49496195ed chore: Add flash as a dev dependency for testing (#4016)
Add videojs-flash to devDependencies and update sandbox examples to use flash
2017-02-01 17:21:44 -05:00
Pat O'Neill
d24fe409e8 docs(guides): Manual Documentation Improvements (#3703) 2016-12-02 14:27:59 -05:00
Owen Edwards
6296ca8538 @OwenEdwards added language attribute in HTML files for accessibility. closes #3257 2016-04-28 15:29:40 -07:00
Owen Edwards
41bc481597 @OwenEdwards added basic descriptions track support. closes #3098 2016-03-25 14:16:56 -04:00
Can Küçükyılmaz
f4bc3c12b5 @defli added missing var to sandbox index.html example. closes #3155 2016-03-07 14:58:02 -05:00
mister-ben
29f66acb98 @mister-ben updated Umuted to Unmute in lang files. closes #3053 2016-02-03 16:15:16 -05:00
Patrick
876e48547c @CoWinkKeyDinkInc fixed table in Tracks guide. Replaced some single quotes with double quotes. closes #2946 2016-01-25 20:11:26 -05:00
brandonocasey
7838fe2ec3 @BrandonOCasey updated sandbox to to use newer CDN urls. closes #2917 2015-12-15 14:38:09 -05:00