diff --git a/web/src/pages/audiobooks/AudiobookPlayer.tsx b/web/src/pages/audiobooks/AudiobookPlayer.tsx index c11a8ac0..d4404339 100644 --- a/web/src/pages/audiobooks/AudiobookPlayer.tsx +++ b/web/src/pages/audiobooks/AudiobookPlayer.tsx @@ -5,6 +5,7 @@ import { useReportAudiobookProgress } from "@/hooks/audiobooks/useReportAudioboo import type { AudiobookFile } from "@/lib/audiobooks/types"; import { SeekBar, formatTime } from "@/player/components/SeekBar"; import { ChaptersMenu } from "@/player/components/ChaptersMenu"; +import { SpeedMenu } from "@/player/components/SpeedMenu"; import type { PlayerChapter } from "@/player/types"; export interface AudiobookPlayerProps { @@ -200,12 +201,6 @@ export default function AudiobookPlayer({ seekTo(audio.currentTime + delta); } - function handleRateChange(e: React.ChangeEvent) { - const r = Number(e.target.value); - setRate(r); - if (audioRef.current) audioRef.current.playbackRate = r; - } - const canPlay = Boolean(file); return ( @@ -239,7 +234,7 @@ export default function AudiobookPlayer({ {title} ) : null} -
+
{formatTime(currentTime)} / @@ -285,19 +280,14 @@ export default function AudiobookPlayer({ {chapters.length > 0 && ( )} - + onChange={(r) => { + setRate(r); + if (audioRef.current) audioRef.current.playbackRate = r; + }} + /> {onClose && ( + + {open && ( +
+ {rates.map((r, idx) => ( + + ))} +
+ )} +
+ ); +}