AudioPlayer
A styled audio player with play/pause, seek, volume, and mute controls. Three layout variants: default (full card with artwork), minimal (compact bar), and controls (inline strip).
Preview
SoundHelix Song 1
SoundHelix
Usage
import { AudioPlayer } from "anexui";
<AudioPlayer
src="/audio/track.mp3"
title="Track Name"
artist="Artist Name"
/>
Copy codeVariants
Default
Full card with artwork placeholder, title, artist, seek bar, and volume slider.
<AudioPlayer
src="/audio/track.mp3"
title="Track Name"
artist="Artist Name"
variant="default"
/>
Copy codeMinimal
Compact bar with a large play button, title, seek bar, and mute toggle.
<AudioPlayer
src="/audio/track.mp3"
title="Track Name"
variant="minimal"
/>
Copy codeControls
Inline strip — play button, seek bar, time display, and mute toggle. Useful inside cards or toolbars.
<AudioPlayer src="/audio/track.mp3" variant="controls" />
Copy codeLoop & AutoPlay
<AudioPlayer src="/audio/track.mp3" loop />
<AudioPlayer src="/audio/track.mp3" autoPlay loop />
Copy codeProps
| Prop | Type | Default | Description |
|---|---|---|---|
| src | string | — | URL of the audio file |
| title | string | — | Track title shown in default and minimal variants |
| artist | string | — | Artist name shown in default variant |
| variant | "default" \| "minimal" \| "controls" | "default" | Layout variant |
| autoPlay | boolean | false | Autoplay on mount — browsers may block unless muted |
| loop | boolean | false | Loop the track when it ends |
| className | string | — | Extra class applied to the root element |
| onPlay | () => void | — | Fired when playback starts |
| onPause | () => void | — | Fired when playback is paused |
| onEnded | () => void | — | Fired when the track ends |
Accessibility
- Root uses
role="region"(orrole="group"for thecontrolsvariant) witharia-label - Seek and volume sliders have
aria-label,aria-valuemin,aria-valuemax, andaria-valuenow - Play/pause and mute buttons carry descriptive
aria-labelattributes that update with state - Time display uses
aria-live="off"to avoid interrupting screen readers during playback