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

3434 Commits

Author SHA1 Message Date
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
mister-ben
e1afa3e181 docs: emphasize src object and video-js element (#5960) 2019-04-29 14:22:47 -04:00
Chuck Wilson
45d1ca9c73 chore: change rollup config so that npm run watch works (#5966)
There was a mux.js file missing from the externals list for module outputs.
2019-04-29 13:18:31 -04:00
Brandon Casey
a55c51fd59 test: restore prototype modifications and fix flaky tests (#5964) 2019-04-29 12:01:37 -04:00
Thijs Triemstra
629594ece5 fix: use performance.now() when possible (#5870) 2019-04-24 11:29:22 -04:00
Gary Katsevman
c59ba5f465
chore(test): upgrade to latest sinon (#5954)
Fixes #5953
2019-04-24 10:22:48 -04:00
Gary Katsevman
4d626b029a
chore: don't log karma config (#5955) 2019-04-23 22:01:58 -04:00
Gary Katsevman
98e86ea235
fix(package): update @videojs/http-streaming to version 1.10.1 (#5951)
Closes #5934
2019-04-23 14:36:06 -04:00
greenkeeper[bot]
a17e662688 Update videojs-font to the latest version 🚀 (#5941)
* fix(package): update videojs-font to version 3.1.1

* chore(package): update lockfile package-lock.json
2019-04-23 14:28:45 -04:00
greenkeeper[bot]
7e8c2eed1c chore(package): update videojs-generate-karma-config to version 5.2.0 🚀 (#5935) 2019-04-23 14:28:03 -04:00
Owen Edwards
f4154b9de0 Add role='application' to the video element on Chrome on Windows, to work around a JAWS screen reader bug (#5863) 2019-04-23 13:45:27 -04:00
Owen Edwards
322dae44b5 feat(middleware): allow middleware to handle volume setter and getter (#5906)
Allow middleware to handle volume setter and getter. This supports things like ducking the playback volume programmatically, without affecting the player's UI volume control.
2019-04-23 13:42:52 -04:00
Gary Katsevman
1a52b6971e 7.5.4 2019-04-12 10:51:09 -04:00
Evan Farina
5973a62f67 fix: call reset if we are paused or no promises, otherwise wait for play promise to resolve (#5876)
Calling video.load while the video is trying to play (that is between play and playing event) throws an error. Instead, just wait for playback to happen before resetting.

Fixes #5875
2019-04-11 15:53:31 -04:00
Brandon Casey
ad53b80b8a fix: correctly resolve play promise when terminated via middleware (#5895) 2019-04-11 14:29:27 -04:00
Thomas
1844482bf5 fix: fix bug preventing control bar from hiding on mobile (#5836) 2019-04-11 13:57:56 -04:00
Richard Bushell
22d0514257 fix: fix fullscreen detection when player is nested within document fullscreen (#5912) 2019-04-11 13:57:19 -04:00
Matthias
cd073417ed lang: fix typo in de translation (#5920) 2019-04-11 13:54:33 -04:00
Pat O'Neill
458a5ead44
fix: explicitly remove all document-level listeners on player dispose (#5929) 2019-04-11 13:52:36 -04:00
Pat O'Neill
55b37524a3
fix: hide the progress control and show the subs-caps button when using Live UI at extra small size (#5915) 2019-04-11 13:35:57 -04:00
Pat O'Neill
c85bc00df2
fix: always show the mute button by default in responsive mode (#5914) 2019-04-11 12:37:52 -04:00
mister-ben
b2eae7bdbf docs(ModalDialog): add missing documentation for pauseOnOpen (#5908) 2019-04-03 11:46:58 -04:00
Gary Katsevman
c030eda294 7.5.3 2019-03-29 14:56:53 -04:00
Otis Wright
4c277fd0f6 docs: add an example Vue integration.md (#5899)
* Create vue.md

Instructions for Vue integration (based on React example).

* Add link to Vue guide
2019-03-28 19:56:29 -04:00