Skip to content

Commit 5a64c0e

Browse files
committed
Added property to mux-player-react and extended example
1 parent d847858 commit 5a64c0e

File tree

3 files changed

+17
-12
lines changed

3 files changed

+17
-12
lines changed

examples/nextjs-with-typescript/pages/MuxPlayer.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -654,6 +654,11 @@ function MuxPlayerPage({ location }: Props) {
654654
min={0}
655655
step={1}
656656
/>
657+
<BooleanRenderer
658+
value={state.capLevelToPlayerSize}
659+
name="capLevelToPlayerSize"
660+
onChange={genericOnChange}
661+
></BooleanRenderer>
657662
</div>
658663
</main>
659664
</>

packages/mux-player-react/src/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ export type MuxPlayerProps = {
118118
theme?: string;
119119
themeProps?: { [k: string]: any };
120120
fullscreenElement?: string;
121+
capLevelToPlayerSize?: boolean;
121122
onAbort?: GenericEventListener<MuxPlayerElementEventMap['abort']>;
122123
onCanPlay?: GenericEventListener<MuxPlayerElementEventMap['canplay']>;
123124
onCanPlayThrough?: GenericEventListener<MuxPlayerElementEventMap['canplaythrough']>;

packages/playback-core/src/index.ts

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -729,7 +729,6 @@ export const setupHls = (
729729
backBufferLength: 30,
730730
renderTextTracksNatively: false,
731731
liveDurationInfinity: true,
732-
capLevelToPlayerSize: true,
733732
capLevelOnFPSDrop: true,
734733
};
735734
const streamTypeConfig = getStreamTypeConfig(streamType);
@@ -744,19 +743,19 @@ export const setupHls = (
744743
}
745744
: undefined;
746745

747-
let capLevelControllerObj : {
746+
const capLevelControllerObj: {
748747
capLevelController?: typeof CapLevelController;
749748
capLevelToPlayerSize?: boolean;
750-
} = { capLevelController: undefined };
751-
if (_hlsConfig.capLevelToPlayerSize == null && !props.capLevelToPlayerSize) {
752-
capLevelControllerObj = {
753-
capLevelController: MinCapLevelController,
754-
};
755-
}
756-
if (props.capLevelToPlayerSize !== undefined) {
757-
capLevelControllerObj = {
758-
capLevelToPlayerSize: props.capLevelToPlayerSize,
759-
};
749+
} = {};
750+
751+
// If capLevelToPlayerSize is not explicitly set we enable MinCapLevelController
752+
if (_hlsConfig.capLevelToPlayerSize == null && props.capLevelToPlayerSize == null) {
753+
capLevelControllerObj.capLevelController = MinCapLevelController;
754+
capLevelControllerObj.capLevelToPlayerSize = true;
755+
} else {
756+
capLevelControllerObj.capLevelController = undefined;
757+
// hlsConfig will take precedence over props
758+
capLevelControllerObj.capLevelToPlayerSize = props.capLevelToPlayerSize;
760759
}
761760

762761
const hls = new Hls({

0 commit comments

Comments
 (0)