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