1
0
mirror of https://github.com/videojs/video.js.git synced 2025-01-06 06:50:51 +02:00
Commit Graph

1512 Commits

Author SHA1 Message Date
Brandon Casey
47349c8e29
fix: add a threshold of 30s for the liveui to show (#6409) 2020-03-10 15:53:17 -04:00
Gary Katsevman
749ef548ed
fix: detect chromium-based Edge (#6497)
This loosens the regex used for Edge. Still detects legacy Edge but now
also detects the new Edge.

IS_CHROME still returns true for Edgium but I think that it's worth
keeping that as the behavior should be pretty close. If there is a need
to differentiate, can check IS_EDGE and also whether IS_EDGE &&
IS_CHROME is present. Combining with IS_WINDOWS could also be useful as
some capabilities of Edge are only available in Windows.
2020-02-26 11:43:04 -05:00
Marco Garay
e6c03c7896
fix: current time tooltip does not update (#6445) 2020-02-18 15:29:55 -05:00
Gary Katsevman
8a205d049e
refactor: support requestFullscreen's promise, better internal handling of events (#6422) 2020-01-31 15:59:12 -05:00
Grzegorz Blaszczyk
6f77778a70 fix: improves control bar hiding functionality (#6400)
Fixes #6391
2020-01-15 12:11:03 -05:00
Brandon Casey
7008777985 fix: slider screenreader value returning as NaN (#6404)
Slider's getProgress was return a string when it should've been returning a number.

Fixes #5984.
2020-01-15 12:07:45 -05:00
Brandon Casey
bcaa86989b refactor: use Fn.UPDATE_REFRESH_INTERVAL in seekBar & liveTracker (#6407)
Follow up from #6142 to include a couple of other uses.
2020-01-15 12:04:27 -05:00
Gary Katsevman
17d8046836
revert: Revert "fix(iOS): pause player on suspend or stalled if extra buffer is available (#6199)" (#6373)
This reverts commit c791cd8c4e.

Fixes #6330
2019-12-24 11:25:01 -05:00
Grzegorz Blaszczyk
cd4076a566 fix: updates seekbar position after mouse up event is triggered. (#6372)
When we are paused, call update directly, otherwise, call the throttled update.

Fixes #6232, fixes #6234, fixes #6370.
2019-12-24 11:24:50 -05:00
Gary Katsevman
917d898a48
fix: IS_IPAD should be false on iPhone (#6371)
Safari user agent. However, the new check also returns true for iPhones.
Therefore, we should exclude iPhones from the check.
2019-12-24 11:23:42 -05:00
Tsachi Shlidor
df3c14a0e3 fix(sass): import path has cwd once again (#6326) 2019-12-02 14:14:18 -05:00
Gary Katsevman
ca84448026
fix: turn on strict mode again (#6334)
We had to turn off strict mode (#4551) in Video.js due to a change in vtt.js. That has now been fixed in videojs/vtt.js#40 and released as part of 0.15.2 which will be available via #6333.

Fixes videojs/vtt.js#15
2019-12-02 14:13:36 -05:00
Gary Katsevman
25d15d4b14
fix(extend): super_ should be available for backwards compatibility (#6329)
Fixes #6328
2019-11-22 12:32:18 -05:00
Alex Barstow
b3c2343f98 fix: DRMed content goes black in IE/Edge when video element focused (#6318)
Any programmatic call to focus when playing back DRMed content on IE/Edge causes the video element to turn black. Instead, don't call focus() in those cases.

Fixes #6270.
2019-11-19 14:42:45 -05:00
Marco Del Toro Barragan
a11f3fa574 fix: detect iPadOS as IS_IPAD (#6319)
iPadOS defaults to desktop mode unless Safari is opened in split screen mode. The only way to detect it is to assume that Safari with Touch enabled is iPad. This is good enough until and if a better way to detect it is made available.
2019-11-19 13:40:35 -05:00
Grzegorz Blaszczyk
ccca846da8 feat: resets pastSeekEnd_ variable. (#6249)
* feat: resets pastSeekEnd_ when its value is much higher than seeking increment.

* fixes unit tests
2019-11-15 13:44:34 -05:00
mister-ben
f7b3772e27 fix: ensure components added with an index are added in the correct location (#6297) 2019-11-14 15:22:42 -05:00
Gary Katsevman
680e7d78d7 fix: bring back Android 4.x support (#6289)
Use a WeakMap and Set shams for browsers that don't support it.
2019-11-07 17:21:53 -05:00
Pat O'Neill
29638b7969 fix: ensure the default ID of the first player is 'vjs_video_3' as some people have relied on this (#6216)
When a player is created without an id on the embed code, Video.js automatically assigns it one based on an auto-incrementing number (a.k.a. a GUID). For the longest time, this has happened to result in the default id of the first player being vjs_video_3.

It was never intended for users to rely on this value being consistent, but users do strange and inadvisable things.

PR #6103 had an unintended side effect in that it changed the default id to vjs_video_2, which we worry could affect some users of Video.js.
2019-11-07 17:21:52 -05:00
Brion Vibber
0e37fbf02c feat: option to load text tracks on demand vs preload (#6043)
Reimplementation of https://github.com/videojs/video.js/pull/2192
on current code. Seems to work but has not been carefully tested,
especially on conditions such as slow networks and complex tracks.

For https://github.com/videojs/video.js/issues/5252

A `preloadTextTracks` tech option is added, set to true by default,
to keep current behavior intact. Alternate behavior can be enabled
by setting this to false.

This delays loading of the VTT cue files until they are selected.
For sites like Wikipedia that tend to have large numbers of
crowdsourced subtitles and can show many files together on one
page, this saves a lot of unnecessary network transfer and API
hits.

Does mean there may be dropped cues while switching to a track
that requires on-demand loading.

Example usage:

videojs(element, {
  html5: {
    preloadTextTracks: false
  }
};
2019-11-04 15:13:24 -05:00
mister-ben
260cfcd247 fix: Make suppressing no source error compatible with videojs-errors (#6217) 2019-10-04 13:34:54 -04:00
Marco Del Toro Barragan
c791cd8c4e fix(iOS): pause player on suspend or stalled if extra buffer is available (#6199)
On iOS, when disconnecting the headphones, we may receive a stalled or suspend event. In those case, we may actually still have buffer available for us to play through rather than actually having stalled or suspended. In those cases, we should pause the player to prevent playback issues.
2019-10-04 13:31:41 -04:00
Brandon Casey
4134a9734b test: run tests via rollup (#5601) 2019-08-30 14:56:41 -04:00
Brandon Casey
bd58039c78 perf: Save 3740 bytes gizpped by getting rid of xhr deps (#6164)
Switch to @videojs/xhr and setup babel runtime helpers properly.
2019-08-30 11:13:45 -04:00
Pat O'Neill
064fcafd44 feat: add isDisposed method to components (#6099) 2019-08-29 18:42:15 -04:00
Brandon Casey
5fa4257b91 feat: cap log history at 1000 items (#6192) 2019-08-29 17:32:34 -04:00
Brandon Casey
99b610bd92 perf: only update ui on change, wrap things in requestAnimationFrame (#6155) 2019-08-29 17:02:56 -04:00
mister-ben
f7185bad9e feat: allow a click handler to be specified in clickable component's options (#6140) 2019-08-29 16:46:49 -04:00
Brandon Casey
22782b8425 perf: Another 5ms of startup time improvements (#6145) 2019-08-29 16:44:06 -04:00
Grzegorz Blaszczyk
f324d1f23c Allows middleware to handle muted setter/getter (#6177) 2019-08-29 16:42:42 -04:00
Kevin Lee
8129f03f18 fix: allow player dimension method to accept 'auto' (#6185) 2019-08-29 16:42:22 -04:00
Grzegorz Blaszczyk
714aba0ca8 fix: make live UI button more consistent (#6201)
Use a simple moving average for setting the seekableIncrement value, which is used to determine whether we're at the live edge of nor.
2019-08-28 13:41:32 -04:00
Grzegorz Blaszczyk
3c1dd8ff44 fix: adds space between vjs-live-display and vjs-volume-control controls. (#6200)
Closes #5815
2019-08-27 15:39:52 -04:00
Grzegorz Blaszczyk
62465b841e fix: make 'Esc' works for a vertical volume bar and menus (#6046)
Improve player accessibility by adding 'Esc' functionality to the volume panel and menu popups.

Fixes #6004.
2019-08-21 14:24:35 -04:00
Pat O'Neill
51b9861d5b fix: do not handle hotkeys in contenteditable elements (#6182)
Exclude elements where `el.isContentEditable == true;` for hotkeys.
2019-08-19 14:57:15 -04:00
Brandon Casey
549552ed43 fix: remove deprecated tsml dependency (#6174) 2019-08-19 14:56:16 -04:00
Brandon Casey
5ee247762e perf: Do not add/remove listeners for each timer (#6144) 2019-08-07 16:11:24 -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
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
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
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
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
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
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