diff --git a/src/assets/qualitySelector.ts b/src/assets/qualitySelector.ts index 3fc8f7d..e18d8a6 100644 --- a/src/assets/qualitySelector.ts +++ b/src/assets/qualitySelector.ts @@ -32,6 +32,7 @@ export const createQualitySelector = (player: any) => { return this.options_.items.map((item: { name: string }) => { const qualitySelectorButton = new MenuItem(player, { label: item.name }) + qualitySelectorButton.handleClick = (data) => { const qualityClicked = data.currentTarget.innerText const id = formatedQualities.find((i) => i.name === qualityClicked)?.id @@ -44,8 +45,21 @@ export const createQualitySelector = (player: any) => { return qualitySelectorButton }) } + + buildCSSClass() { + return `vjs-icon-cog ${super.buildCSSClass()}` + } } videojs.registerComponent('CustomMenuButton', CustomMenuButton) + const formattedLevels = [] + + const updateLevels = (items: { name: string; index: number; id: string; }[]) => { + player.controlBar.removeChild('CustomMenuButton') + player.controlBar.addChild('CustomMenuButton', { + title: 'Qualities', + items: formatedQualities + }) + } qualityLevels.on('addqualitylevel', () => { formatedQualities = qualityLevels.levels_.map((quality: QualityLevel) => { @@ -56,10 +70,8 @@ export const createQualitySelector = (player: any) => { } }) - player.controlBar.addChild('CustomMenuButton', { - title: 'Qualities', - items: formatedQualities - }) + formattedLevels.push(formatedQualities) + updateLevels() }) qualityLevels.on('change', function () {