Spaces:
Runtime error
Runtime error
| import React from 'react'; | |
| import PropTypes from 'prop-types'; | |
| import bindAll from 'lodash.bindall'; | |
| import PlaybackStepComponent from '../components/record-modal/playback-step.jsx'; | |
| import AudioBufferPlayer from '../lib/audio/audio-buffer-player.js'; | |
| class PlaybackStep extends React.Component { | |
| constructor (props) { | |
| super(props); | |
| bindAll(this, [ | |
| 'handlePlay', | |
| 'handleStopPlaying' | |
| ]); | |
| } | |
| componentDidMount () { | |
| this.audioBufferPlayer = new AudioBufferPlayer(this.props.samples, this.props.sampleRate); | |
| } | |
| componentWillUnmount () { | |
| this.audioBufferPlayer.stop(); | |
| } | |
| handlePlay () { | |
| this.audioBufferPlayer.play( | |
| this.props.trimStart, | |
| this.props.trimEnd, | |
| this.props.onSetPlayhead, | |
| this.props.onStopPlaying | |
| ); | |
| this.props.onPlay(); | |
| } | |
| handleStopPlaying () { | |
| this.audioBufferPlayer.stop(); | |
| this.props.onStopPlaying(); | |
| } | |
| render () { | |
| const { | |
| sampleRate, // eslint-disable-line no-unused-vars | |
| onPlay, // eslint-disable-line no-unused-vars | |
| onStopPlaying, // eslint-disable-line no-unused-vars | |
| onSetPlayhead, // eslint-disable-line no-unused-vars | |
| ...componentProps | |
| } = this.props; | |
| return ( | |
| <PlaybackStepComponent | |
| onPlay={this.handlePlay} | |
| onStopPlaying={this.handleStopPlaying} | |
| {...componentProps} | |
| /> | |
| ); | |
| } | |
| } | |
| PlaybackStep.propTypes = { | |
| sampleRate: PropTypes.number.isRequired, | |
| samples: PropTypes.instanceOf(Float32Array).isRequired, | |
| ...PlaybackStepComponent.propTypes | |
| }; | |
| export default PlaybackStep; | |