The code powering m.abunchtell.com https://m.abunchtell.com
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 
 

55 Zeilen
1.1 KiB

  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. class ExtendedVideoPlayer extends React.PureComponent {
  4. constructor (props, context) {
  5. super(props, context);
  6. this.handleLoadedData = this.handleLoadedData.bind(this);
  7. this.setRef = this.setRef.bind(this);
  8. }
  9. handleLoadedData () {
  10. if (this.props.time) {
  11. this.video.currentTime = this.props.time;
  12. }
  13. }
  14. componentDidMount () {
  15. this.video.addEventListener('loadeddata', this.handleLoadedData);
  16. }
  17. componentWillUnmount () {
  18. this.video.removeEventListener('loadeddata', this.handleLoadedData);
  19. }
  20. setRef (c) {
  21. this.video = c;
  22. }
  23. render () {
  24. return (
  25. <div className='extended-video-player'>
  26. <video
  27. ref={this.setRef}
  28. src={this.props.src}
  29. autoPlay
  30. muted={this.props.muted}
  31. controls={this.props.controls}
  32. loop={!this.props.controls}
  33. />
  34. </div>
  35. );
  36. }
  37. }
  38. ExtendedVideoPlayer.propTypes = {
  39. src: PropTypes.string.isRequired,
  40. time: PropTypes.number,
  41. controls: PropTypes.bool.isRequired,
  42. muted: PropTypes.bool.isRequired
  43. };
  44. export default ExtendedVideoPlayer;