|
|
|
|
@ -43,7 +43,7 @@ const getVideoQualities = (levels: Array<Level>) => { |
|
|
|
|
Number, |
|
|
|
|
'desc', |
|
|
|
|
) |
|
|
|
|
return uniqBy([...sorted], 'label') |
|
|
|
|
return uniqBy([...sorted, autoQuality], 'label') |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
export const useVideoQuality = (hls: Hls | null) => { |
|
|
|
|
@ -73,13 +73,15 @@ export const useVideoQuality = (hls: Hls | null) => { |
|
|
|
|
|
|
|
|
|
const listener = () => { |
|
|
|
|
const qualities = getVideoQualities(hls.levels) |
|
|
|
|
const quality = find(qualities, { label: selectedQuality }) || qualities[0] |
|
|
|
|
const quality = find(qualities, { label: selectedQuality }) || autoQuality |
|
|
|
|
|
|
|
|
|
// eslint-disable-next-line no-param-reassign
|
|
|
|
|
hls.currentLevel = quality.level |
|
|
|
|
setSelectedQuality(quality.label) |
|
|
|
|
setVideoQualities(qualities) |
|
|
|
|
} |
|
|
|
|
hls.on(Hls.Events.MANIFEST_PARSED, listener) |
|
|
|
|
|
|
|
|
|
return () => { |
|
|
|
|
hls.off(Hls.Events.MANIFEST_PARSED, listener) |
|
|
|
|
} |
|
|
|
|
|