mirror of
https://github.com/yusufipk/OpenFrame.git
synced 2026-09-11 09:36:08 +00:00
Merge pull request #64 from yusufipk/fix/silent-speed-threshold
fix(player): label only 16x as silent in the speed picker
This commit is contained in:
@@ -103,10 +103,11 @@ export function timeFromClientX(
|
|||||||
export const YOUTUBE_SPEED_OPTIONS = [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2];
|
export const YOUTUBE_SPEED_OPTIONS = [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2];
|
||||||
export const NATIVE_SPEED_OPTIONS = [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 2.5, 3, 4, 6, 8, 16];
|
export const NATIVE_SPEED_OPTIONS = [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 2.5, 3, 4, 6, 8, 16];
|
||||||
|
|
||||||
// Past 4x the browsers stop pitch-correcting and drop the audio track entirely.
|
// The browsers keep the audio track well past the point where they stop
|
||||||
// The video still plays, so the fast rates are worth offering, but the picker
|
// pitch-correcting: playback is still audible at 8x, and only the 16x clamp is
|
||||||
// says so rather than letting a silent 8x read as a broken file.
|
// silent. The video plays either way, so the rate stays on the ladder and the
|
||||||
export const SILENT_ABOVE_SPEED = 4;
|
// picker labels it rather than letting a silent 16x read as a broken file.
|
||||||
|
export const SILENT_ABOVE_SPEED = 8;
|
||||||
|
|
||||||
export function getSpeedOptionsForProvider(providerId: string | null | undefined): number[] {
|
export function getSpeedOptionsForProvider(providerId: string | null | undefined): number[] {
|
||||||
return providerId === 'youtube' ? YOUTUBE_SPEED_OPTIONS : NATIVE_SPEED_OPTIONS;
|
return providerId === 'youtube' ? YOUTUBE_SPEED_OPTIONS : NATIVE_SPEED_OPTIONS;
|
||||||
|
|||||||
@@ -235,8 +235,9 @@ describe('getSpeedOptionsForProvider', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('marks the rates the browser plays without audio', () => {
|
it('marks the rates the browser plays without audio', () => {
|
||||||
expect(SILENT_ABOVE_SPEED).toBe(4);
|
// Measured in the browser: 6x and 8x still carry audio, 16x is the only silent rate.
|
||||||
expect(NATIVE_SPEED_OPTIONS.filter((speed) => speed > SILENT_ABOVE_SPEED)).toEqual([6, 8, 16]);
|
expect(SILENT_ABOVE_SPEED).toBe(8);
|
||||||
|
expect(NATIVE_SPEED_OPTIONS.filter((speed) => speed > SILENT_ABOVE_SPEED)).toEqual([16]);
|
||||||
expect(YOUTUBE_SPEED_OPTIONS.every((speed) => speed <= SILENT_ABOVE_SPEED)).toBe(true);
|
expect(YOUTUBE_SPEED_OPTIONS.every((speed) => speed <= SILENT_ABOVE_SPEED)).toBe(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user