Skip to content
FrameworkStyle

usePlaybackRateOptions

Hook to build playback rate menu options from the player playback rate state

usePlaybackRateOptions returns the current playback rate, the available options, and setRate / setValue callbacks for wiring rate selection into a menu. It returns null when the playback rate feature is not configured.

import { Menu, usePlaybackRateOptions } from "@videojs/react";

function SpeedMenu() {
  const playbackRate = usePlaybackRateOptions();
  if (playbackRate?.state.availability !== "available") return null;

  return (
    <Menu.RadioGroup value={playbackRate.value} onValueChange={playbackRate.setValue} aria-label="Speed">
      {playbackRate.options.map((option) => (
        <Menu.RadioItem key={option.value} value={option.value} disabled={option.disabled}>
          {option.label}
          <Menu.ItemIndicator checked={option.value === playbackRate.value} />
        </Menu.RadioItem>
      ))}
    </Menu.RadioGroup>
  );
}

Options come from the player’s configured playback rates. Labels default to the rate followed by a multiplication sign (e.g. 1.5×); pass formatRate to customize them. setValue accepts an option’s string value, while setRate accepts a number directly.

See PlaybackRateRadioGroup for the component-level pattern, and Menu for a complete settings menu example.

API Reference

Parameters

ParameterTypeDefaultDetails
propsPlaybackRateOptionsProps

Return Value

PlaybackRateOptionsResult | null