Quantcast
Channel: Active questions tagged react-native+typescript - Stack Overflow
Viewing all articles
Browse latest Browse all 6287

Recorder not working in react-native-audio-recorder-player

$
0
0

I am trying to use the package as mentioned, and here is my code, not sure why it seems to have recorded, but when I click play, no sound can be heard, and even I drag the file to another music player, it can't play the file. I have some basic setup just follow the Example in git from the package.

const RecordingScreen = () => {  const [audio, setAudio] =useState({    recordSecs:0,    recordTime:'00:00:00',    currentPositionSec: 0,    currentDurationSec: 0,    playTime: '00:00:00',    duration:'00:00:00',  })  const audioRecorderPlayer = new AudioRecorderPlayer();  const meteringEnabled = false;   const SetRecording = () => {    onStartRecord();  };  const SetPauseRecording = () => {    onStopRecord();  };  const SetStartPlaying = () => {    onStartPlay();  };  const onStartRecord =  async() => {    if (Platform.OS === 'android') {      try {        const granted = await PermissionsAndroid.request(          PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE,          {            title: 'Permissions for write access',            message: 'Give permission to your storage to write a file',            buttonPositive: 'ok',          },        );        if (granted === PermissionsAndroid.RESULTS.GRANTED) {          console.log('You can use the storage');        } else {          console.log('permission denied');          return;        }      } catch (err) {        console.warn(err);        return;      }    }    if (Platform.OS === 'android') {      try {        const granted = await PermissionsAndroid.request(          PermissionsAndroid.PERMISSIONS.RECORD_AUDIO,          {            title: 'Permissions for write access',            message: 'Give permission to your storage to write a file',            buttonPositive: 'ok',          },        );        if (granted === PermissionsAndroid.RESULTS.GRANTED) {          console.log('You can use the camera');        } else {          console.log('permission denied');          return;        }      } catch (err) {        console.warn(err);        return;      }    }    const path = Platform.select({      ios: 'file:////XXXXXXsomepathname/audio/helloworld.m4a',      android: 'file:////XXXXXXsomepathname/audio/helloworld.m4a',    });    const audioSet: AudioSet = {      AudioEncoderAndroid: AudioEncoderAndroidType.AAC,      AudioSourceAndroid: AudioSourceAndroidType.MIC,      AVEncoderAudioQualityKeyIOS: AVEncoderAudioQualityIOSType.high,      AVNumberOfChannelsKeyIOS: 2,      AVFormatIDKeyIOS: AVEncodingOption.aac,    };    console.log('audioSet', audioSet);    const uri = await audioRecorderPlayer.startRecorder(path, audioSet);    audioRecorderPlayer.addRecordBackListener((e: any) => {      setAudio({...audio,        recordSecs: e.current_position,        recordTime: audioRecorderPlayer.mmssss(          Math.floor(e.current_position),        ),      });      return;    });    console.log(`uri: ${uri}`);  };  const onStopRecord =  async() => {    const result = await audioRecorderPlayer.stopRecorder();    audioRecorderPlayer.removeRecordBackListener();    setAudio({...audio,      recordSecs: 0,    });    console.log(`this is the stop result: ${result}`);  };  const onStartPlay = async () => {    console.log('onStartPlay');    const path = Platform.select({      ios: 'file:////XXXXXXsomepathname/audio/helloworld.m4a',      android: 'file:////XXXXXXsomepathname/audio/helloworld.m4a',    });    const msg = await audioRecorderPlayer.startPlayer(path);    audioRecorderPlayer.setVolume(1.0);    console.log(msg);    audioRecorderPlayer.addPlayBackListener((e: any) => {      if (e.current_position === e.duration) {        console.log('finished');        audioRecorderPlayer.stopPlayer();      }      setAudio({...audio,        currentPositionSec: e.current_position,        currentDurationSec: e.duration,        playTime: audioRecorderPlayer.mmssss(          Math.floor(e.current_position),        ),        duration: audioRecorderPlayer.mmssss(Math.floor(e.duration)),      });      return    });  };

all the console.log is working, but I am not sure why it seems can't record the sound, I need to use the local path as I have more than one audio file need to be recorded.


Viewing all articles
Browse latest Browse all 6287

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>