1
0
mirror of https://github.com/videojs/video.js.git synced 2025-01-10 23:30:03 +02:00
Commit Graph

1554 Commits

Author SHA1 Message Date
mister-ben
661962cb3a
fix(player): Ensure fluid works when dimensions not initially known (#7023)
The video dimensions aren't necessarily known at loadedmetadata particularly with native playback on iOS. In fluid mode, the player defaults to 16:9 and does not update once the dimensions are known.

- Updates player styles on resize events.
- Fixes arguments passed to addEventedCallback so the callbacks are executed.

Fixes #6939
2021-01-06 12:49:57 -05:00
mister-ben
503141c75f
docs: Remove Flash (#6994) 2020-12-22 14:10:53 -05:00
Armin
a35a1217f0
fix(MapSham): fix set method to use map property (#7000) 2020-12-17 17:19:17 -05:00
Brandon Casey
11d37e28fd
fix: clear readyQueue with dispose (#6967) 2020-12-11 16:04:09 -05:00
kontrollanten
3e30f83bb1
fix(time-display): add a null check for text node (#6977)
fixes #6699
closes #6700
2020-12-11 16:01:36 -05:00
Brandon Casey
799616deee
fix: play progress time tooltip from jittering during live (#6968) 2020-12-11 15:57:51 -05:00
Kevin Kipp
dcce0e908d
fix: cast TOUCH_ENABLED to boolean (#6943)
This needs to be cast before exporting so users
can confidently pass it into their videojs config
and not worry about videojs internals doing strict
equality checks against true/false.

Co-authored-by: Kevin Kipp <kkipp@cloudflare.com>
2020-11-16 14:46:21 -05:00
genofire
3901ab0e72
fix(css): set seek to live button's align-items prop to center (#6942)
Fixes https://github.com/videojs/themes/issues/7
2020-11-16 14:44:29 -05:00
claudiah12
ee0637c078
feat(track): make label property mutable and fire a labelchange event when the label is changed (#6928)
Allows the editing of a track's label after its creation. Menu buttons will listen for the labelchange event and update their content accordingly.

This is technically divergent from the spec, which says it's readonly, but it can be useful for Video.js users.

Co-authored-by: Claudia Hinkle <chinkle@chinkle-mn1.linkedin.biz>
2020-11-10 18:11:53 -05:00
Zenon Mousmoulas
0140b28cc3
fix: always set tabIndex to restore keydown a11y (#6871)
Skipping the tabIndex property on created elements due to #6145
optimizations blocks them from receiving keyboard events, due to not
being focusable; for example this breaks closing ModalDialog elements by
pressing Escape.
Fix this by always setting tabIndex, as the element may return the same
value even though the property has not been explicitly set.

Fixes #6870
2020-11-10 18:10:59 -05:00
Aaron Mertzenich
694fe0f787
fix(menu): focus correct MenuItem on keyboard open (#6914)
Closes #6912

Co-authored-by: Aaron Mertzenich <aaron.mertzenich@sonicfoundry.net>
2020-11-10 18:10:25 -05:00
Gary Katsevman
a803484a39
feat(tech): add a scrubbing getter. (#6920)
This is helpful for source handlers and anything else that could have
customer behavior for when we're scrubbing or not.
2020-11-10 18:10:04 -05:00
Marco Del Toro Barragan
a0d09c107a
feat: trigger languagechange event on a language change (#6891) 2020-11-10 18:09:37 -05:00
Gary Katsevman
affc0611d9
fix(text-track): don't overlap captions when font-size changes (#6874)
For whatever reason, when the font size for text tracks is changed in
the text track settings dialog, we set a bottom of 2px on the cue.
This was added as part of the initial vtt work for Video.js in
4e5c28cc56 (diff-8169d53aa7eee6cab5f85b6641ef3117R176).
However, this doesn't seem to be doing anything right now and having it
means that when font-size is changed, multiple cues end up with a button
value of 2px causing them to overlap and obscure each other.

This works fine if the cues are positioned away from each other,
however, if multiple cues are positioned by default and a large font
size is used, while they will now stay on their lines, they may
partially obscure each other. This does not fix that issue and may
require modification (addition of overrides) to vtt.js to properly
support.
2020-10-06 10:18:23 -04:00
Gary Katsevman
1963086aef
fix(dom): vertical getPointerPosition value (#6864)
From my understand, in the changes #5773, the Y position of all the
boxes is already calculated and accounted for in the offsetY value we
get. However, because the HTML coordinate system has Y=0 at the top,
when we do offsetY/boxH, we get a position relative to the top of the
element. However, we expect that position relative to the "start" of the
slider, or the bottom of it. Therefore, we want to get the inverse
value, which is '1 - clamp(offsetY/boxH)'.

Fixes #6863
2020-10-01 11:16:53 -04:00
Tim Gates
f22ead10f0
docs: Fix simple typo, intial -> initial (#6851)
There is a small typo in src/js/player.js, src/js/tech/html5.js, test/unit/sourceset.test.js.

Should read `initial` rather than `intial`.
2020-09-22 14:38:19 -04:00
Samuel Burbano
c4c8fc1caf fix: Better mouse position handling (#5773)
This uses offsetX and offsetY on the MouseEvents which helps account for transforms on the player. Unfortunately, this isn't available on TouchEvents, so, while this helps desktop devices with using a mouse, it doesn't help mobile devices using touch.

Fixes #6726, fixes #1102.
2020-08-31 12:32:57 -04:00
Gary Katsevman
c91b510ef2
fix(tech): add abstract setScrubbing in tech.js (#6808) 2020-08-17 15:15:32 -04:00
Gary Katsevman
245efacb59
fix(tech): add abstract crossOrigin method on Tech (#6765)
As part of #6588, we started using the crossOrigin method. However, it's
possible that a tech doesn't support this. Notably, the Flash tech. We
should instead have an abstract method on Tech that returns nothing so
we don't fail on those browsers.
2020-07-20 17:02:12 -04:00
Gary Katsevman
94bea3502e
fix: limit fastSeek to Safari based browsers only (#6752)
Fixes #6722
2020-07-13 12:00:17 -04:00
Yichao Yu
8d462bcab0
feat: Add support for CAF, FLAC and WAV formats in known mimetypes (#6657)
Following https://en.wikipedia.org/wiki/HTML5_audio#Supported_audio_coding_formats
and https://hpr.dogphilosophy.net/test/index.php . These are formats that are supported
on some (most?) browsers.

Tested with a patched version of seafile. The flac and wav files correctly plays on
chromium on my Linux laptop and the caf file plays on my iPad.
(Chromium appears to play the caf file just fine but claim to not support it.)

Of course not all browsers support these but according to #5982 and my test result
I assume the browser detection is implemented somewhere else already.
2020-07-10 12:25:41 -04:00
Ileana Padilla
3d505ef0c5
feat: add debug mode (#6687)
When `debug(true)` is called, it will fire a `debugon` event that plugins and components can then use to do extra logging or anything else that's helpful to for debugging. It will also set the log level to debug.

When `debug(false)` is called, it will fire a `debugoff` event that plugins and components can then use to stop doing extra logging or helpful debugging. It will reset the log level to whatever it was previously.

Co-authored-by: ipadilla4 <ipadilla@brightcove.com>
2020-07-10 12:24:58 -04:00
Pat O'Neill
f6a66e62de feat: Add a default, plugin-specific logger to advanced plugins (#6693) 2020-07-10 11:59:04 -04:00
Alex Barstow
fdd807b81e
fix: Fullscreen broken in iOS (#6735)
The Fullscreen API is unsupported in iOS, so self.fsApi_.fullscreenerror and self.fsApi_.fullscreenchange are undefined, which was breaking the player after entering fullscreen by removing all bound player events.

Fixes #6707, fixes #6684, fixes #6645.
2020-07-07 17:33:03 -04:00
Brandon Casey
cad9114b2e
fix: Use clamp correctly in progress control (#6625) 2020-06-19 15:06:49 -04:00
Brandon Casey
6e7cc75aaa feat: Add named requestAnimationFrame to prevent performance issues (#6627)
Make sure we don't create multiple rAFs particularly when in a background tab.

Fixes #5937
2020-06-19 14:50:39 -04:00
mister-ben
907d1cd730
fix: Disable PIP if tech doesn't support it (#6678)
The requestPictureInPicture API and button currently assume thta if the browser supports the PIP API, the tech supports it. This results in a broken button with certain techs, such as youtube or HTML5 with an audio el.

Checks if disablePictureInPicture is exactly false. If true it's disabled and if undefined the tech does not support it.

Fixes #6398.
2020-06-19 14:36:43 -04:00
Gary Katsevman
d6b07f089e
fix(fs): don't set player element css props on native fullscreen (#6673)
Fixes #6640
2020-05-28 10:29:36 -04:00
mister-ben
0b91f74260
fix: addChild with index should allow for children that are elements (#6644)
The fix in #6297 doesn't work where the child to insert before is an element rather than a component, e.g. the video element.
Check if the child to insert before is an element, as well as checking if it has an el_
2020-05-26 17:00:23 -04:00
Gary Katsevman
a4ea1f9657
fix(text-tracks): set withCredentials on XHR if crossOrigin='use-credentials' (#6588)
Fixes #6587
2020-04-22 16:39:01 -04:00
Grzegorz Blaszczyk
dbd5203a0b
feat: adds disablePictureInPicture method to the player API. (#6378) 2020-04-22 12:41:21 -04:00
Gary Katsevman
8c66c58346
feat: support fastSeek during scrubbing if available (#6525)
This will allow us to use iframe playlists on HLS on Safari browsers and eventually, add support in VHS.
2020-04-22 12:40:26 -04:00
Brandon Casey
3ac11d0463
fix: update being called on seekbar during dispose (#6576) 2020-04-13 12:00:04 -04:00
Gary Katsevman
f711ddcfb6
feat(cors): allow both crossOrigin and crossorigin method and options (#6571)
Fixes a bug with the setter and aliases crossorigin to crossOrigin.

This is a followup from #6533.
2020-04-06 13:04:22 -04:00
Aaron Stone
ea20edcd99
feat(cors): add crossOrigin option to enable cookies on requests (#6533)
Co-authored-by: Abraham Cruz Sustaita <abraham.sustaita@gmail.com>
Co-authored-by: Gary Katsevman <git@gkatsev.com>
2020-04-06 11:53:45 -04:00
Brandon Casey
47ba7040b0
feat: Add a function for getting descendants from components (#6519) 2020-03-30 17:39:23 -04:00
Brandon Casey
668c7f44d6
fix(liveui): tweaks to prevent jitter (#6405) 2020-03-30 17:27:45 -04:00
Gary Katsevman
da37fab130
feat(fs): return a promise from requestFullscreen and exitFullscreen when we can (#6424) 2020-03-26 17:26:26 -04:00
Marco Garay
768adb1200
feat: Improve currentTime to allow it to be called before player is ready (#6507)
In the cases where the player isn't ready, or we are in the middle of changing sources, we will wait for `canplay` and then seek to the provided time without requiring Video.js users to handle this themselves.

Co-authored-by: Marco Garay <mgaray@brightcove.com>
2020-03-25 17:54:51 -04:00
Gary Katsevman
d1702d5e45
docs(player): fix addRemoteTextTrack description of manualCleanup option (#6521) 2020-03-12 11:50:43 -04:00
Gary Katsevman
52c181ddb0
fix: trigger change events on remoteTextTrack when nativeTextTrack is set to true (#6410)
It seems we have never triggered change events on remoteTextTrack when we were using native text tracks. This was a problem for VHS, which exclusively uses text tracks.
This makes it so we do trigger the event. Main issue with this change is that it creates a potential for a false positive where a change event was triggered from a non-remote text track but the remoteTextTrack list still received a change event. This issue is mitigated by best practices of looping through the list looking for the modes that you care about.

Co-authored-by: Kevin Kipp <kevin.kipp@gmail.com>
Co-authored-by: Kyle Boutette <kyleveB@gmail.com>
2020-03-12 11:26:09 -04:00
Darius Oleskevicius
cc2b82b8d7
fix: DRM content goes black in IE/Edge when focus is placed on video element (#6508)
This is a followup from #6318 but for the poster image.
2020-03-10 16:35:54 -04:00
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