Микрофон-в-mp3 не работает для мобильных устройств - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь реализовать аудиозапись для Интернета и для мобильных устройств, и я использовал эту библиотеку для записи звука с микрофона на 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;

Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...