I have run into a roadblock on my web project that uses Wavesurfer. I have installed wavesurfer.js and react-wavesurfer as node modules in my project. Wavesurfer.js seems to be
If you are still having trouble with this, you can create your own Waveform component that essentially handles the same load. Here is a simple example that worked for me
1. install wavesurfer.js manually:
# taken from here: https://wavesurfer-js.org/
npm install --save wavesurfer.js@2.0.0-beta01
2. build a custom Waveform component:
// components/waveform.js
import React from 'react'
import ReactDOM from 'react-dom'
import WaveSurfer from 'wavesurfer.js'
export default class Waveform extends React.Component {
constructor(props) {
super(props)
this.state = {
}
}
componentDidMount() {
this.$el = ReactDOM.findDOMNode(this)
this.$waveform = this.$el.querySelector('.wave')
this.wavesurfer = WaveSurfer.create({
container: this.$waveform,
waveColor: 'violet',
progressColor: 'purple'
})
this.wavesurfer.load(this.props.src)
}
componentWillUnmount() {
}
render() {
return (
<div className='waveform'>
<div className='wave'></div>
</div>
)
}
}
Waveform.defaultProps = {
src: ""
}
3. and then, in the parent component:
// components/my-parent-component.js
import Waveform from 'path/to/components/Waveform'
...
render() {
return <div clasName='parent-component'><Waveform src={'/path/to/audio/src.mp3'} /></div>
}
React-wavesurfer handles the creation of the wavesurfer instance itself. So you can leave out the makeWave
part.
import React, { Component } from 'react';
import WaveSurfer from 'react-wavesurfer';
export default class WaveComponent extends Component {
render() {
return (
<WaveSurfer audioFile="/path/to/audio.mp3" />
);
}
}
This code works for me. If this doesn't work please post the exact versions of wavesurfer.js and react-wavesurfer you are using.
Also please bear in mind that you need to expose wavesurfer.js as a global variable if you are using a module bundler. (This will hopefully be no longer necessary in the near future) – for more exact instructions please see https://github.com/mspae/react-wavesurfer#prerequisites-and-common-pitfalls)