1.0.3 ⢠Published 5 months ago
react-wave-audio-player v1.0.3
React Wave Audio Player
A customizable React audio player built with TypeScript, Tailwind CSS, and WaveSurfer.js. This package provides a fully responsive and visually appealing audio player with waveform visualization.
š Features
- šµ Waveform Visualization using WaveSurfer.js
- šØ Customizable Colors & Styles (progress bar, cursor, buttons, etc.)
- šļø Adjustable Volume & Playback Speed
- ⯠Play/Pause, Mute/Unmute Controls
- š„ Audio Download Button
- ⨠Works with Tailwind CSS for styling
š¦ Installation
1. Install the package
npm install react-wave-audio-player
2. Install required peer dependencies
Since this package depends on react, react-dom, tailwindcss, wavesurfer.js, and react-icons, ensure they are installed in your project:
npm install react react-dom tailwindcss wavesurfer.js react-icons
3. Configure Tailwind CSS (If not already set up)
If you haven't set up Tailwind CSS, follow the official documentation:
š Tailwind CSS Setup: Using Tailwind with Vite
š Usage
Basic Example
import React from "react";
import { AudioPlayer } from "react-wave-audio-player";
const App = () => {
return (
<div className="p-4">
<AudioPlayer src="/audio/sample.mp3" />
</div>
);
};
export default App;
Customizing the Player
<AudioPlayer
src="/audio/sample.mp3"
waveColor="#a3aed0"
progressColor="#3311db"
cursorColor="blue"
buttonsColor="#ff5722"
barWidth={3}
barRadius={2}
barGap={1}
height={80}
playIcon={<YourCustomPlayIcon />}
pauseIcon={<YourCustomPauseIcon />}
volumeUpIcon={<YourCustomVolumeIcon />}
volumeMuteIcon={<YourCustomMuteIcon />}
playbackSpeeds={[0.5, 1, 1.5, 2]}
onPlay={() => console.log("Playing")}
onPause={() => console.log("Paused")}
onVolumeChange={(vol) => console.log("Volume: ", vol)}
/>
šØ Props & Customization
Prop | Type | Default | Description |
---|---|---|---|
src | string | Required | URL of the audio file |
waveColor | string | "#a3aed0" | Color of waveform |
progressColor | string | "#3311db" | Color of progress bar |
cursorColor | string | "blue" | Color of cursor |
buttonsColor | string | "#3311db" | Color of control buttons |
barWidth | number | 2 | Width of waveform bars |
barRadius | number | 2 | Radius of waveform bars |
barGap | number | 1 | Gap between waveform bars |
height | number | 100 | Height of the waveform |
playIcon | ReactNode | <FaPlay /> | Custom play icon |
pauseIcon | ReactNode | <FaPause /> | Custom pause icon |
volumeUpIcon | ReactNode | <BsFillVolumeUpFill /> | Custom volume up icon |
volumeMuteIcon | ReactNode | <BsFillVolumeMuteFill /> | Custom mute icon |
playbackSpeeds | number[] | [1, 1.5, 2] | Available playback speed options |
onPlay | () => void | undefined | Callback when audio starts playing |
onPause | () => void | undefined | Callback when audio pauses |
onVolumeChange | (volume: number) => void | undefined | Callback when volume changes |
š License
This project is licensed under the MIT License.
š¤ Contributing
If you find any issues or want to contribute, feel free to open an issue or submit a pull request on GitHub.
š GitHub Repository: react-wave-audio-player
ā Support
If you like this package, please give it a ā on GitHub!
Happy coding! ššµ