Commit Graph

9 Commits

Author SHA1 Message Date
Matt Luedke
a682125480 Refs #13 Support quality selector buttons anywhere in the player's component hierarchy
Previously, the SourceInterceptor made the assumption that the QualitySelector button component
is a direct child of the controlBar component. That may not always be true. Video.js allows you
to specify a nested hierarchy of components, and so when plugin users choose to move the
QualitySelector button elsewhere, the plugin does not work properly.

This commit introduces a new event type called QUALITY_REQUESTED to signal when the user is
requesting a quality change. The old QUALITY_SELECTED event is now used to denote when the
plugin actually uses a new quality source. This dichotomy eliminates the need for the
SourceInterceptor to have a reference to the QualitySelector button component.
2017-12-01 19:54:19 -05:00
Ethan Smith
7da6fd37df Use selected = false, over _.omit to deselect a source
From a basic functionality standpoint, this accomplishes the same purpose as
the previous implementation using `_.omit`. However, rather than removing the
`selected` attribute from the sources, this will keep the structure the same by
only altering the value of the source.

If your usage of this plugin requires a stable source format, e.g. for
comparing sources to see if the source changed, please provide the `selected`
attribute when programmatically setting the player source. At this time, we
don't have a simple way to standardize the `selected` attribute on initial
source load. (i.e. It's up to the programmer to set the initial format on the
sources before giving them to the player)
2017-11-20 15:11:25 -05:00
Matt Luedke
cc7f670cce Fixes #7 Add localized control text to quality selector menu button 2017-10-25 11:49:27 -04:00
Ethan Smith
9dd9ca108b Fixes #5 Only bind to QUALITY_SELECTED once
As things turn out, the middleware constructor is called every time `setSource`
is called [1]. This was causing a new listener to get bound to
`QUALITY_SELECTED` on each change by the quality selector. :( This change makes
it so the listener is only bound on the initial creation of the player.

[1] 03529163b6/src/js/tech/middleware.js (L66)
2017-10-18 14:27:45 -04:00
Ethan Smith
449a0a54d7 Ensure the correct resolution is selected on player 'ready' 2017-08-04 10:45:15 -04:00
Ethan Smith
26da31607d PR Modification: Use 'selected' instead of 'isDefault' 2017-08-04 09:48:58 -04:00
Ethan Smith
b4a9aa73d0 Highlight correct resolution in the UI when the source is changed programmatically 2017-08-03 15:21:24 -04:00
Ethan Smith
156e5923c7 Initial implementation 2017-08-03 09:21:16 -04:00
Jeremy Thomerson
f261cc04a2 Initial commit 2017-06-20 20:43:49 -04:00