gpt4 book ai didi

javascript - Wavesurfer.js 工作正常,但 react-wavesurfer 有问题

转载 作者:行者123 更新时间:2023-12-04 08:56:57 25 4
gpt4 key购买 nike

我在使用 Wavesurfer 的网络项目中遇到了障碍。我已经在我的项目中安装了 wavesurfer.js 和 react-wavesurfer 作为节点模块。 Wavesurfer.js 似乎工作正常,但 react-wavesurfer 似乎遇到了我发现难以调试的问题。以下代码:

import React from "react";
import WaveSurfer from "wavesurfer.js"
import ReactWavesurfer from "react-wavesurfer";

class Waveform extends React.Component {
makeWave() {
var wavesurfer = WaveSurfer.create({
container: '#waveform',
waveColor: 'red',
progressColor: 'purple'
});
wavesurfer.load('path/to/mp3');
};


render() {
this.makeWave();
return (
<div>
<ReactWavesurfer
audioFile={'path/to/mp3'}
/>
</div>
);
}
}

export default Waveform;

仅生成调用 this.makeWave() 的第一个波形。它在尝试创建 React 波形时返回错误:Uncaught TypeError: this._wavesurfer.init is not a function。我正在使用 browserify 来捆绑我的 javascript 依赖项。

任何帮助将不胜感激!

最佳答案

如果您仍然遇到此问题,您可以创建自己的 Waveform 组件来处理相同的负载。这是一个对我有用的简单示例

1.手动安装 wavesurfer.js:

# taken from here: https://wavesurfer-js.org/
npm install --save wavesurfer.js@2.0.0-beta01

<强>2。构建自定义波形组件:

// 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.然后,在父组件中:

// 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>
}

关于javascript - Wavesurfer.js 工作正常,但 react-wavesurfer 有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44813585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com