使用本机测量音频的响度

时间:2019-01-17 13:58:04

标签: android react-native audio

我正在创建一个应用程序(Android),以使用react native记录电话中的语音。一个要求是实时测量语音的响度,并根据该响度制作动画。我尝试使用react-native-audio库,但问题是仅在IOS中支持响度监视。我检查了展览音频库,但找不到解决方法。还有其他库/方法可以实时测量录制声音的响度吗?

1 个答案:

答案 0 :(得分:1)

我发现了这个库https://www.npmjs.com/package/react-native-sound-level,该库实时提供分贝的录制音频的响度。

首次许可,适用于Android 23 +

async requestAudioRecordPermission() {
    try {
        if(PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.RECORD_AUDIO))
        {
            const granted = await PermissionsAndroid.request(
            PermissionsAndroid.PERMISSIONS.RECORD_AUDIO,
            {
                'title': 'Audio Record Permission',
                'message': 'App needs access to your microphone'
            }
        )
            if (granted === PermissionsAndroid.RESULTS.GRANTED) {
                console.log("You can use the microphone")
            } else {
                console.log("Audio record permission denied")
            }
        }

    } catch (err) {
        console.log(err)
    }
}



componentWillMount() {
      this.requestAudioRecordPermission();
  }

然后将库导入程序:

import RNSoundLevel from 'react-native-sound-level'

只需添加以下内容:

componentDidMount(){
this._waveRect.changeSpeed();
  RNSoundLevel.start()
  RNSoundLevel.onNewFrame = (data) => {
        this.setState({sound_level: data.value})
  }
}

componentWillUnmount() {
  RNSoundLevel.stop()
}