1
0
mirror of https://github.com/videojs/video.js.git synced 2024-12-25 02:42:10 +02:00
Commit Graph

3857 Commits

Author SHA1 Message Date
Pat O'Neill
bd51e9e8db fix(lang): Add missing strings for Chinese (Simplified) and Chinese (Traditional) (#6149) 2019-08-07 16:06:14 -04:00
Brandon Casey
266cb151fa perf: Improve performance of toTitleCase, register with lower and TitleCase (#6148) 2019-08-07 16:05:41 -04:00
Brandon Casey
8610f99673 perf: Use WeakMap for dom data (#6103) 2019-08-01 14:26:59 -04:00
Paul Dias
1d2b20636c fix(lang): update Spanish translations (#6065) 2019-08-01 14:07:16 -04:00
Brandon Casey
4b325ea8f8 chore: fix lang watch loop caused by zh-* copy (#6147) 2019-07-31 11:54:41 -04:00
Gary Katsevman
e4cdeb661d 7.6.1 2019-07-30 16:28:26 -04:00
Brandon Casey
6a93c8afac perf: throttle more timers and use native bind (#6142) 2019-07-30 16:01:00 -04:00
Bruno
20cae21ff7 fix(component): use safe computedStyle in currentDimension (#6073)
This will prevent a null exception when a video.js is implemented in a 'display:none' iframe on Firefox (<62).

This is a fix in continuation of the PR #3664 regarding a bug in Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=548397
2019-07-29 18:17:02 -04:00
Grzegorz Blaszczyk
f2aedb72ec fix: Improves isSingleLeftClick() to handle mousemove (#6138)
Fixes #6132
2019-07-29 17:45:40 -04:00
Pat O'Neill
b84c290f7e lang: Clone zh-CN to zh-Hans and zh-TW to zh-Hant (#6098)
Currently, zh-CN and zh-TW are used as shorthands for Simplified and Traditional Chinese character sets, respectively. However, they carry with them a built-in assumption about the geographic locale which may not be appropriate in all cases.

The codes zh-Hans and zh-Hant are more correct in that they refer only to the character set and not the geographic locale. Further specificity is available via codes like zh-Hans-CN.
2019-07-29 17:35:53 -04:00
Brandon Casey
3c932c5f8e refactor: use the new any event function (#6080) 2019-07-29 17:21:42 -04:00
Brandon Casey
2e495dd5f5 perf: save ~10ms on player.src call (#6141)
Don't use a case-insensitive regex for getting the extname. Don't try to guess the type if we're provided with one.
2019-07-29 16:40:29 -04:00
Grzegorz Blaszczyk
2e69448f49 chore: switch from deprecated jsnext, main options to mainFields (#6075) 2019-07-26 13:49:01 -04:00
Gary Katsevman
3afa7d1ce4
fix(pip): hide PiP button in browsers not support the WICG spec (#6131) 2019-07-26 11:33:25 -04:00
Gary Katsevman
15ff8f7242
revert: "fix(play-toggle): call event.stopPropagation in the click handler (#5803)" (#6128)
PR #5083 introduces a fix to #5624, an issue with click events when
Polymer's tap gesture is being used. However, this causes an issue where
`player.on('click')` no longer triggers from the play toggle. Thus, we
revert the change. In addition, looking at Polymer 2 and 3, they
recommend against using the tap gesture.

Fixes #6092
2019-07-24 15:58:38 -04:00
Brandon Casey
b9fbd0bbaa chore: update videojs-generate-karma-config to ~5.2.1 and remove patches (#6104) 2019-07-18 15:09:53 -04:00
Gary Katsevman
93a6bbd341 7.6.0 2019-06-20 16:05:44 -04:00
Gary Katsevman
10ed08a15a
refactor(pip): rely only on WICG spec events (#6064)
The WICG spec calls out only two events, enterpictureinpicture and
leavepictureinpicture. We should try and only use those.
If pictureinpicturechange is still necessary, it can be re-added at a
later date.
2019-06-20 15:11:21 -04:00
Gary Katsevman
cf6e0e8248
docs: update guides markdown (#6063) 2019-06-20 14:31:21 -04:00
mister-ben
5a538c3caf feat: add option to suppress initial error for non-playable sources (#6057)
Video.js checks whether sources are playable and both displays a message to the user and logs an error to the console. In Google's mobile friendly test and related tools, this message and error is triggered because their test browser's video element does not support any video formats. Some Video.js users are concerned about the æsthetics of the rendered preview within the tools and whether this might have an SEO impact.

Adds a suppressNotSupportedError option, defaulting to false. If set to true, if no sources are playable the error is deferred to the first human interaction (click or touchstart) but cleared if a loadstart occurs.
2019-06-20 14:00:12 -04:00
Gary Katsevman
101b755a7c 7.5.6 2019-06-20 13:56:17 -04:00
Pat O'Neill
70ba84eb6a fix(liveui): do not seek to live on first seek when autoplaying a live stream (#6062)
Before listening for the play/timeupdate combination when starting the LiveTracker, check if the player has already started playback.
2019-06-20 13:56:00 -04:00
Gary Katsevman
9d941c0087
fix: undeprecate options() (#6056)
Fixes #6048
2019-06-18 18:10:28 -04:00
François Beaufort
116d84af75 feat: add built-in Picture-in-Picture button (#6002)
Adds a new PictureInPictureToggle component in the controls bar of the player. It depends on videojs-font 3.2.0 (videojs/font#41) for icons.

Final spec piece from #5824.
2019-06-18 16:42:02 -04:00
Dave Kiss
204ff4619a feat: add write method to time tooltips (#6021)
This splits up the `update` method into two methods: `update` and `write`. The new write method is only responsible for updating the text content of the tooltips. This is useful if you wan't to be able to override the behavior in some way but still wanted all the behavior in `update` and not take a double dom modification hit.
2019-06-18 16:25:24 -04:00
Grzegorz Blaszczyk
f5fd94f610 fix: handle esc key properly inside of the CloseButton (#6050) 2019-06-18 16:23:26 -04:00
Gary Katsevman
ca7b63324c
fix: always pass event object to click handler (#6059) 2019-06-18 16:22:33 -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
Mike
2c7644f91e fix(play-toggle): call event.stopPropagation in the click handler (#5803)
The play button stops working when recent versions of Google's Polymer is in use on the page because of the way Polymer synthesizes 'tap' events on non-touch devices. The Polymer tap code thinks the click event was ignored unless the DOM event's stopPropagation method is
called.

In chrome 70 the small play/pause control doesn't work with Polymer 1.x Gestures tap is used on document. Demo of issue: https://codepen.io/mscalora/pen/mQzQmp

Fixes #5624.
2019-06-18 15:37:43 -04:00
mister-ben
97b66a9130 fix(lang): update German translations (#6058) 2019-06-18 15:30:52 -04:00
Gary Katsevman
3e105719ba
chore: switch to dart-sass (#6055)
This is a rebased and updated PR of #5841.

We wanted to use the sass package as that's what the docs recommend. We also wanted to disable source maps that CDN-linked code won't try to download it.

Fixes #5841, fixes #5826.
2019-06-17 17:31:32 -04:00
Gary Katsevman
2977d52592
refactor: switch to fullscreen.options (#6054) 2019-06-17 16:51:28 -04:00
Austin Morton
631ac3b68d feat(fs): support FullscreenOptions (#5856)
On browsers that implement the Unprefixed Fullscreen API, pass a FullscreenOptions dictionary to requestFullscreen.

Add `fullscreenOptions` option with default value of `{navigationUI: 'hide'}` to player.
See https://fullscreen.spec.whatwg.org/#dictdef-fullscreenoptions
2019-06-17 14:05:22 -04:00
Brandon Casey
2878c1d0d4 feat(events): add any function (#5977)
This new events function allows you to listen to a list of events and know that only one handler will ever be called for the group. With just one event, it'll function similarly to `.one`.
Examples:
Single event
```
const player = videojs('some-player-id');

player.any('a', (e) => console.log(e.type + ' triggered');

player.trigger('a');
// logs 'a triggered'

player.trigger('a');
// logs nothing as the listener has been removed.
```
Multiple Events
```
const player = videojs('some-player-id');

player.any(['a', 'b', 'c', 'd'], (e) => console.log(e.type + ' triggered');

player.trigger('d');
// logs 'd triggered'

player.trigger('a');
player.trigger('b');
player.trigger('c');
player.trigger('d');
// all triggers above log nothing as the listener is removed after the first 'd' trigger.
```
2019-06-17 14:04:25 -04:00
Gary Katsevman
c2bea31830
chore: fixup merge issue with #6001 (#6053) 2019-06-17 13:21:54 -04:00
Gary Katsevman
74fde943fd
chore(package): update rollup to version 1.15.1 (#6042)
Fixes #6041.
2019-06-11 14:00:20 -04:00
François Beaufort
83541dceeb feat: add Picture-in-Picture API methods (#6001)
Following #5824, this PR adds support for some Picture-in-Picture methods described in the spec and article. It also makes sure that we can listen to the enterpictureinpicture and leavepictureinpicture events on the player.
2019-06-11 13:21:02 -04:00
Gary Katsevman
882432e99d
chore: update dependencies (#6036)
Fixes #6033
2019-06-11 09:54:33 -05:00
Gary Katsevman
a5810b40b9 7.5.5 2019-06-10 16:15:34 -04:00
Pat O'Neill
79eadac252 fix: make sure hotkeys are not triggered outside the player or in form fields within the player (#5969) 2019-06-10 16:15:24 -04:00
Alex Barstow
5a7fe48b07 fix: group subtitles and captions when switching tracks (#6008)
This fixes a regression created by #5741.
2019-06-10 16:15:23 -04:00
Gary Katsevman
fded30f8f8 fix(fs): feature detect el.matches() for IE11 (#6007) 2019-06-10 16:15:23 -04:00
greenkeeper[bot]
ef49a9be7e fix(package): update @videojs/http-streaming to version 1.10.3 🚀 (#6019) 2019-05-31 13:29:28 -04:00
Gary Katsevman
1cd9be7200
chore: add Affects: a11y and switch to outdated label (#6015)
Add "Affects: a11y" as an exempt label and switch to outdated label instead of wontfix as the stale label.
2019-05-28 11:35:32 -04:00
Grzegorz Blaszczyk
075a5043b9 fix: change 'mousedown' to the 'mouseup' event in the player (#5992)
This player behavior is very useful for accessibility because the user can cancel the action by clicking outside the button area. It is recommended by the WCAG 2.1 "2.5.2 Pointer Cancellation" spec.
2019-05-21 11:51:37 -04:00
gunchleoc
fc2147523b feat(lang): add Scottish Gaelic (gd.json) translation (#5972) 2019-05-17 16:18:25 -04:00
Grzegorz Blaszczyk
0f501f9fa1 feat: add 'audio/mp4' mimetype for m4a files (#5982) 2019-05-17 16:17:24 -04:00
greenkeeper[bot]
d41794c42c fix(package): update @videojs/http-streaming to version 1.10.2 🚀 (#5991) 2019-05-17 15:43:30 -04:00
Gary Katsevman
4585c08bdb
fix(player): silence rejected fullscreen promise (#5970)
The fullscreen API now returns a promise. If the player is inside an
iframe that doesn't allow fullscreen, the promise will reject and cause
an error to be logged. Instead, we should silence this promise.

Fixes #5918
2019-04-29 15:13:56 -04:00
Brandon Casey
1eb47f0690 chore: add a sandbox page for testing autoplay values. (#5933) 2019-04-29 14:45:02 -04:00