mirror of
https://github.com/zoriya/v10.git
synced 2026-08-05 13:48:14 +00:00
feat(core): add sub-1x playback rates to defaults (#1231)
This commit is contained in:
+12
-5
@@ -6,7 +6,7 @@ import { PlaybackRateButtonCore } from '../playback-rate-button-core';
|
||||
|
||||
function createMediaState(overrides: Partial<MediaPlaybackRateState> = {}): MediaPlaybackRateState {
|
||||
return {
|
||||
playbackRates: [1, 1.2, 1.5, 1.7, 2],
|
||||
playbackRates: [0.25, 0.5, 0.75, 1, 1.2, 1.5, 1.7, 2],
|
||||
playbackRate: 1,
|
||||
setPlaybackRate: vi.fn(),
|
||||
...overrides,
|
||||
@@ -96,7 +96,7 @@ describe('PlaybackRateButtonCore', () => {
|
||||
const core = new PlaybackRateButtonCore();
|
||||
const media = createMediaState({ playbackRate: 2 });
|
||||
core.cycle(media);
|
||||
expect(media.setPlaybackRate).toHaveBeenCalledWith(1);
|
||||
expect(media.setPlaybackRate).toHaveBeenCalledWith(0.25);
|
||||
});
|
||||
|
||||
it('advances through the middle of the list', () => {
|
||||
@@ -108,9 +108,9 @@ describe('PlaybackRateButtonCore', () => {
|
||||
|
||||
it('finds the first rate greater than current when not in list', () => {
|
||||
const core = new PlaybackRateButtonCore();
|
||||
const media = createMediaState({ playbackRate: 0.75 });
|
||||
const media = createMediaState({ playbackRate: 0.3 });
|
||||
core.cycle(media);
|
||||
expect(media.setPlaybackRate).toHaveBeenCalledWith(1);
|
||||
expect(media.setPlaybackRate).toHaveBeenCalledWith(0.5);
|
||||
});
|
||||
|
||||
it('finds the next greater rate when between list values', () => {
|
||||
@@ -124,7 +124,14 @@ describe('PlaybackRateButtonCore', () => {
|
||||
const core = new PlaybackRateButtonCore();
|
||||
const media = createMediaState({ playbackRate: 3 });
|
||||
core.cycle(media);
|
||||
expect(media.setPlaybackRate).toHaveBeenCalledWith(1);
|
||||
expect(media.setPlaybackRate).toHaveBeenCalledWith(0.25);
|
||||
});
|
||||
|
||||
it('cycles through sub-1x rates', () => {
|
||||
const core = new PlaybackRateButtonCore();
|
||||
const media = createMediaState({ playbackRate: 0.25 });
|
||||
core.cycle(media);
|
||||
expect(media.setPlaybackRate).toHaveBeenCalledWith(0.5);
|
||||
});
|
||||
|
||||
it('does nothing when disabled', () => {
|
||||
|
||||
@@ -3,7 +3,7 @@ import { listen } from '@videojs/utils/dom';
|
||||
import type { MediaPlaybackRateState } from '../../../core/media/state';
|
||||
import { definePlayerFeature } from '../../feature';
|
||||
|
||||
const DEFAULT_RATES: readonly number[] = [1, 1.2, 1.5, 1.7, 2];
|
||||
const DEFAULT_RATES: readonly number[] = [0.25, 0.5, 0.75, 1, 1.2, 1.5, 1.7, 2];
|
||||
|
||||
export const playbackRateFeature = definePlayerFeature({
|
||||
name: 'playbackRate',
|
||||
|
||||
Reference in New Issue
Block a user