Измерьте громкость звука с реагировать родной - PullRequest
0 голосов
/ 17 января 2019

Я создаю приложение (Android) для записи голоса с телефона, используя реагировать родной. Одним из требований является измерение громкости голоса в реальном времени и создание анимации на его основе. Я пытался использовать библиотеку response-native-audio, но проблема в том, что мониторинг громкости поддерживается только в IOS. Я проверил аудио библиотеку выставки, но не смог найти способ сделать это. Есть ли другая библиотека / способ измерения громкости звука, записанного в режиме реального времени?

1 Ответ

0 голосов
/ 18 января 2019

Я нашел эту библиотеку 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()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...