player.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import play from '../play.svg'
  2. import pause from '../pause.svg'
  3. import next from '../next.svg'
  4. import prev from '../prev.svg'
  5. import {connect} from "react-redux";
  6. import {actionTrackPlay, actionTrackStop,actionTrackVolume,actionTrackCurrentTime} from "../reducers";
  7. export const Player = ({player:{volume,duration,currentTime,isPlaying},
  8. trackPlay, trackStop,trackVolume,trackCurrentTime}) => {
  9. return (
  10. <div className='Player'>
  11. <input className='currentTime'
  12. type="range"
  13. min={0}
  14. step={0.1}
  15. max={duration ? duration : `${duration}`}
  16. onChange={(e) => trackCurrentTime(e.target.value)}
  17. value={currentTime}/>
  18. <button><img src={prev}/></button>
  19. {!isPlaying ? ( <button onClick={() => trackPlay()}>
  20. <img src={play}/></button>) : ( <button onClick={() => trackStop()}>
  21. <img src={pause}/></button>)}
  22. <button><img src={next}/></button>
  23. <input
  24. type="range"
  25. min={0}
  26. step={0.1}
  27. max={1}
  28. onChange={(e) => trackVolume(e.target.value)}
  29. value={volume}/>
  30. </div>
  31. )
  32. }
  33. export const CPlayer = connect(state => ({player: state.player}),
  34. {trackPlay: actionTrackPlay,
  35. trackStop: actionTrackStop,
  36. trackVolume:actionTrackVolume,
  37. trackCurrentTime:actionTrackCurrentTime})(Player)