feat(ui): Add quality selection for audio-only content (#3649)

Replaces resolution menu with audio quality menu when content is audio-only.

Fixes: #2071
This commit is contained in:
Nbcl
2022-04-21 18:43:51 -04:00
committed by GitHub
parent d1699de19b
commit adc3502d55
5 changed files with 64 additions and 49 deletions
+27
View File
@@ -642,6 +642,33 @@ describe('UI', () => {
expect(getResolutions()).toEqual(['540p']);
});
it('displays audio quality based on current stream', async () => {
const manifest =
shaka.test.ManifestGenerator.generate((manifest) => {
manifest.addVariant(0, (variant) => {
variant.addAudio(0);
variant.bandwidth = 100000;
});
manifest.addVariant(1, (variant) => {
variant.addAudio(1);
variant.bandwidth = 200000;
});
});
shaka.media.ManifestParser.registerParserByMime(
fakeMimeType, () => new shaka.test.FakeManifestParser(manifest));
await player.load(
/* uri= */ 'fake', /* startTime= */ 0, fakeMimeType);
const qualityButtons = videoContainer.querySelectorAll(
'button.explicit-resolution > span');
const qualityOptions =
Array.from(qualityButtons).map((btn) => btn.innerText);
expect(qualityOptions).toEqual(['200 kbits/s', '100 kbits/s']);
});
/**
* Use internals to update the resolution menu. Our fake manifest can
* cause problems with startup where the Player will get stuck using