首页 > 解决方案 > react-native-audio-recorder-player , audioRecorderPlayer.stopRecorder() crahs app

问题描述

react-native-audio-recorder-player,用于在我的项目中录制音频的库。当我开始录制时一切正常,但是当我调用函数停止录制音频“audioRecorderPlayer.stopRecorder()”时关闭应用程序。它可以在 IOS(模拟器和真实设备)和 Android 模拟器上完美运行,但它不适用于真实的 android 设备。

此错误的原因可能是什么,如何解决?

"react-native": "0.63.3",
"react-native-audio-recorder-player": "^2.6.0-rc3",

控制挂钩


  const [record, setRecord] = useState(false);

启动记录功能

async function handleRecord() {
    try {
      const permissions = await getPermissions();

      if (permissions) {
        const path = Platform.select({
          ios: `audio-${new Date().getTime()}.m4a`,
          android: `sdcard/audio-${new Date().getTime()}.mp3`
        });

        const audioSet = {
          AudioEncoderAndroid: AudioEncoderAndroidType.AAC,
          AudioSourceAndroid: AudioSourceAndroidType.MIC,
          AVEncoderAudioQualityKeyIOS: AVEncoderAudioQualityIOSType.high,
          AVNumberOfChannelsKeyIOS: 2,
          AVFormatIDKeyIOS: AVEncodingOption.aac
        };

        const result = await audioRecorderPlayer.startRecorder(path, audioSet);

        setRecord(true);

        audioRecorderPlayer.addRecordBackListener(e => {
          return;
        });
      }
    } catch (err) {
    }
  }

停止记录功能

async function onStopRecord() {
    try {
      const result = await audioRecorderPlayer.stopRecorder();
      audioRecorderPlayer.removeRecordBackListener();

      setRecord(false);




       setFiles([
        ...files,
        {
          uri: result,
          type: "audio/mpeg",
          name: `audio-${new Date().getTime()}.mp3`
        }
      ]);  
    }catch(error){
      Alert.alert(
        "Erro",
        error
      );
    }
  }

标签: androidreact-native

解决方案


推荐阅读