Я пытаюсь реализовать аудиозапись для Интернета и для мобильных устройств, и я использовал эту библиотеку для записи звука с микрофона на mp3, она хорошо работала для настольного браузера, но не работала для мобильных браузеров Android и iOS.Он не выдавал никаких ошибок и пробовал разные библиотеки, но у меня не работал.
https://www.npmjs.com/package/mic-recorder-to-mp3 использовал эту библиотеку
import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
import MicRecorder from 'mic-recorder-to-mp3';
class App extends Component {
constructor(props){
super(props)
this.state={
recorder: new MicRecorder({ bitRate: 128 }),
record: true,
currentAudio: "",
currentAudioObject: "",
currentAudioName: '',
currentAudioExtension: 'mp3',
isRecording: false,
recordAudio: false
}
}
startRecording = () => {
this.setState({
record: true
});
}
stopRecording = () => {
this.state.recorder
.stop()
.getMp3()
.then(([buffer, blob]) => {
this.setState({ record: false });
const file = new File(buffer, 'Recorded_audio.mp3', {
type: blob.type,
lastModified: Date.now(),
});
let src = URL.createObjectURL(file);
this.setState(prev => {
prev.currentAudio = src;
prev.currentAudioObject = file;
prev.currentAudioName = 'Recorded_audio';
prev.currentAudioExtension = 'mp3';
prev.isRecording = true;
prev.recordAudio = true;
return prev;
});
});
};
startRecorder(){
this.state.recorder
.start()
.then(() => {
this.setState({ record: true });
})
.catch(e => {
console.error(e);
});
}
render() {
return (
<div className="App">
{this.state.record ? null:<audio
controls
src={this.state.currentAudio}>
Your browser does not support the
<code>audio</code> element.
</audio>}
<a
className="App-link"
rel="noopener noreferrer"
onClick={this.startRecorder.bind(this)}
>
Rec
</a>
<button onClick={this.stopRecording}
type="button">Stops</button>
</div>
);
}
}
export default App;
Заранее спасибо