У меня проблемы с волновым серфером. Я использую его для визуализации входа микрофона, и мне трудно отписаться от него.
У Wavesurfer есть несколько способов остановить микрофон , но ни один из них не работает. Я всегда получаю this.stream.stop is not a function
Например, если я помещаю waveSurfer.microphone.stop()
в свою функцию handleStop.
, почему waveSurfer.microphone.start () работает, а stop () не работает?
Может кто-нибудь помочь?
export default function InitialAudioRecording({ handleStop }) {
const [noAudioYet, setNoAudioYet] = React.useState(true);
const [isRecording, setIsRecording] = React.useState(false);
const [isProcessing, setIsProcessing] = React.useState(false);
const [waveSurfer, setWaveSurfer] = React.useState();
const [showWavesurfer, setShowWavesurfer] = React.useState(false);
const waveformRef = React.useRef();
React.useEffect(() => {
if (waveformRef.current) {
const themeGradient = getThemeGradient();
const wavesurfer = WaveSurfer.create({
container: waveformRef.current,
barWidth: 5,
barHeight: 2,
cursorWidth: 0,
waveColor: themeGradient,
hideScrollbar: true,
autoCenter: false,
responsive: true,
interact: false,
width: 100,
height: 350,
maxCanvasWidth: 2000,
fillParent: true,
plugins: [MicrophonePlugin.create()]
});
wavesurfer.microphone.on('deviceReady', function(stream) {
console.log('Device ready!', stream);
});
wavesurfer.microphone.on('deviceError', function(code) {
console.warn('Device error: ' + code);
});
setWaveSurfer(wavesurfer);
}
}, []);
function startRecording() {
waveSurfer.microphone.start();
setShowWavesurfer(true);
setNoAudioYet(false);
setIsRecording(true);
}
function handleData(recordedBlob) {
console.log('chunk of real-time data is: ', recordedBlob);
}
function stopRecording() {
waveSurfer.microphone.stop();
setShowWavesurfer(false);
setIsRecording(false);
setIsProcessing(true);
}