"use client"; import { Button } from "@/components/ui/button"; import { Slider } from "@/components/ui/slider"; import { FastForward, Pause, Play, Rewind, SkipBack, SkipForward, Volume2, } from "lucide-react"; import Image from "next/image"; import { useRef, useState, useEffect } from "react"; export function PodcastPlayer() { const audioRef = useRef(null); const [isPlaying, setIsPlaying] = useState(false); const [currentTime, setCurrentTime] = useState(0); const [duration, setDuration] = useState(0); // Add duration state // Update current time and duration as the audio plays useEffect(() => { const audio = audioRef.current; if (!audio) return; audioRef.current?.load(); const updateTime = () => setCurrentTime(audio.currentTime); const updateDuration = () => setDuration(audio.duration); audio.addEventListener("timeupdate", updateTime); audio.addEventListener("loadedmetadata", updateDuration); return () => { audio.removeEventListener("timeupdate", updateTime); audio.removeEventListener("loadedmetadata", updateDuration); }; }, []); const handlePlaying = () => { if (isPlaying) { audioRef.current?.pause(); } else { audioRef.current?.play(); } setIsPlaying(!isPlaying); }; const formatTime = (time: number) => { if (isNaN(time)) return "0:00"; // Handle NaN case const minutes = Math.floor(time / 60); const seconds = Math.floor(time % 60); return `${minutes}:${seconds.toString().padStart(2, "0")}`; }; return (
); }