Audio player for material ui design
npm install material-ui-audio-player


Audio player for material ui design developed with react.js. Requires Material UI 4 version.
_Demo:_ https://werter12.github.io/material-ui-audio-player/
Just add your audio link to src and your ready to go.
``javascript
import { createMuiTheme, ThemeProvider } from '@material-ui/core';
import AudioPlayer from 'material-ui-audio-player';
const muiTheme = createMuiTheme({});
`
A bunch of props will help to customize component.
`javascript
import { createMuiTheme, ThemeProvider } from '@material-ui/core';
import AudioPlayer from 'material-ui-audio-player';
const muiTheme = createMuiTheme({});
const src = [
'https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3',
'https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.wav',
];
width="100%"
variation="default"
spacing={3}
download={true}
autoplay={true}
order="standart"
preload="auto"
loop={true}
src={src}
/>
`
Could accept audio link or array of audio links.
- _type:_ string | array
- _required_
Corresponds to style property width.
- _default:_ 100%string
- _type:_
Component view variation.
- _default:_ defaultdefault
- _options:_ , primary, secondarystring
- _type:_
Display download button (icon) with dropdown of available audio tracks for download.
- _default:_ falseboolean
- _type:_
Display volume control button (icon).
- _default:_ trueboolean
- _type:_
Corresponds to HTML audio autoplay attribute.
- _default:_ falseboolean
- _type:_
Shadow depth. Corresponds to elevation prop of Material Ui Paper component.
- _default:_ 1number
- _type:_
Rounded corners of the container. Corresponds to square prop of Material Ui Paper component.
- _default:_ falseboolean
- _type:_
Spacing for root Grid container. Corresponds to spacing prop of Material Ui Grid component.
- _default:_ 3 (2 - mobile)number
- _type:_
Order of Slider and controls buttons.
- _default:_ standartstandart
- _options:_ , reversestring
- _type:_
Display loop button.
- _default:_ falseboolean
- _type:_
Corresponds to HTML audio attribute preload.
- _default:_ autostring
- _type:_
This callback triggers when the player started play after pause or initial state
- _type:_ func
This callback triggers when the player paused after the play
- _type:_ func
This callback triggers when the player finish playing
- _type:_ func
This callback triggers when you close the player with help of the close button displayCloseButton
- _type:_ func
This prop helps to customize time displaying. double - means that two timers will be present. single - only one.
- _default:_ doubledouble
- _options:_ , singlestring
- _type:_
This prop helps to position single timer before (start) or after (end) the slider.
- _default:_ startstart
- _options:_ , endstring
- _type:_
The attribute for customizing component styles. Accept the result of
makeStyles function.
- _type:_ func
Provide custom icon component from Material-ui icons for specific icon.
- _type:_ object
- _default:_
``
const icons = {
PlayIcon: PlayCircleFilledWhite,
ReplayIcon: Replay,
PauseIcon: PauseCircleFilled,
VolumeUpIcon: VolumeUp,
VolumeOffIcon: VolumeOff,
CloseIcon: Close,
}
Display slider with time.
- _default:_ trueboolean
- _type:_
Display close button (icon).
- _default:_ falseboolean
- _type:_
Prop for controling mute state of the audio and volume button. (By default is null. When any boolean passed, the mute state for button and audio will be completly controlled from external source)
- _default:_ nulltrue
- _options:_ , falseboolean
- _type:_
Callback for getting access to HTML audio player instance and dispatch react function (from useReducer) in order to change player's state directly (programmatically). Check out Controlled AudioPlayer section in the storybook.
- _type:_ funcplayer
- function_params:_ , dispatch
`javascript
import { createMuiTheme, ThemeProvider } from '@material-ui/core';
import AudioPlayer from 'material-ui-audio-player';
const muiTheme = createMuiTheme({});
const useStyles = makeStyles((theme) => {
return {
root: {
[theme.breakpoints.down('sm')]: {
width: '100%',
},
},
loopIcon: {
color: '#3f51b5',
'&.selected': {
color: '#0921a9',
},
'&:hover': {
color: '#7986cb',
},
[theme.breakpoints.down('sm')]: {
display: 'none',
},
},
playIcon: {
color: '#f50057',
'&:hover': {
color: '#ff4081',
},
},
replayIcon: {
color: '#e6e600',
},
pauseIcon: {
color: '#0099ff',
},
volumeIcon: {
color: 'rgba(0, 0, 0, 0.54)',
},
volumeSlider: {
color: 'black',
},
progressTime: {
color: 'rgba(0, 0, 0, 0.54)',
},
mainSlider: {
color: '#3f51b5',
'& .MuiSlider-rail': {
color: '#7986cb',
},
'& .MuiSlider-track': {
color: '#3f51b5',
},
'& .MuiSlider-thumb': {
color: '#303f9f',
},
},
};
});
useStyles={useStyles}
src="https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3"
loop={true}
/>
``
- root
- playIcon
- replayIcon
- pauseIcon
- volumeIcon
- muteIcon
- mainSlider
- volumeSliderContainer
- volumeSlider
- downloadsIcon
- pauseIcon
- loopIcon
- progressTime
- downloadsContainer
- downloadsItemLink
- downloadsItemText