UNPKG

videojs-hls-quality-selector

Version:

Adds a quality selector menu for HLS sources played in videojs.

49 lines (45 loc) 1.49 kB
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 };