Usage
import {
AudioPlayerButton,
AudioPlayerDuration,
AudioPlayerProgress,
AudioPlayerProvider,
AudioPlayerSpeed,
AudioPlayerSpeedButtonGroup,
AudioPlayerTime,
useAudioPlayer,
useAudioPlayerTime,
} from "@/components/ui/audio-player";
Basic Player
<AudioPlayerProvider>
<div className="flex items-center gap-4">
<AudioPlayerButton />
<AudioPlayerProgress className="flex-1" />
<AudioPlayerTime />
<span>/</span>
<AudioPlayerDuration />
</div>
</AudioPlayerProvider>
Playing a Specific Track
const track = {
id: "track-1",
src: "/audio/song.mp3",
data: { title: "My Song", artist: "Artist Name" }
}
<AudioPlayerProvider>
<AudioPlayerButton item={track} />
<AudioPlayerProgress />
</AudioPlayerProvider>
Multiple Tracks
const tracks = [
{ id: "1", src: "/audio/track1.mp3", data: { title: "Track 1" } },
{ id: "2", src: "/audio/track2.mp3", data: { title: "Track 2" } },
{ id: "3", src: "/audio/track3.mp3", data: { title: "Track 3" } },
]
<AudioPlayerProvider>
<div className="space-y-4">
{tracks.map((track) => (
<div key={track.id} className="flex items-center gap-4">
<AudioPlayerButton item={track} />
<span className="text-sm">{track.data.title}</span>
</div>
))}
<AudioPlayerProgress className="w-full" />
<div className="flex gap-2 text-sm">
<AudioPlayerTime />
<span>/</span>
<AudioPlayerDuration />
</div>
</div>
</AudioPlayerProvider>