videojs-hls-quality-selector
Version:
Adds a quality selector menu for HLS sources played in videojs.
49 lines (45 loc) • 1.49 kB
JavaScript
import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose";
import videojs from 'video.js';
// Concrete classes
var VideoJsMenuItemClass = videojs.getComponent('MenuItem');
/**
* Extend vjs menu item class.
*/
var ConcreteMenuItem = /*#__PURE__*/function (_VideoJsMenuItemClass) {
_inheritsLoose(ConcreteMenuItem, _VideoJsMenuItemClass);
/**
* Menu item constructor.
*
* @param {Player} player - vjs player
* @param {Object} item - Item object
* @param {ConcreteButton} qualityButton - The containing button.
* @param {HlsQualitySelector} plugin - This plugin instance.
*/
function ConcreteMenuItem(player, item, qualityButton, plugin) {
var _this;
_this = _VideoJsMenuItemClass.call(this, player, {
label: item.label,
selectable: true,
selected: item.selected || false
}) || this;
_this.item = item;
_this.qualityButton = qualityButton;
_this.plugin = plugin;
return _this;
}
/**
* Click event for menu item.
*/
var _proto = ConcreteMenuItem.prototype;
_proto.handleClick = function handleClick() {
// Reset other menu items selected status.
for (var i = 0; i < this.qualityButton.items.length; ++i) {
this.qualityButton.items[i].selected(false);
}
// Set this menu item to selected, and set quality.
this.plugin.setQuality(this.item.value);
this.selected(true);
};
return ConcreteMenuItem;
}(VideoJsMenuItemClass);
export { ConcreteMenuItem as default };