【问题标题】:Measure loudness of the audio with react-native使用 react-native 测量音频的响度
【发布时间】:2019-01-18 10:32:53
【问题描述】:

我正在创建一个应用程序 (Android) 来使用 react native 录制来自手机的声音。一个要求是实时测量声音的响度并根据它制作动画。我尝试使用 react-native-audio 库,但问题是响度监控仅在 IOS 中支持。我检查了世博会音频库,但想不出办法。是否有任何其他库/方法来测量实时录制的声音的响度?

【问题讨论】:

    标签: android react-native audio


    【解决方案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()
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-16
      • 1970-01-01
      相关资源
      最近更新 更多