[英]Measure loudness of the audio with react-native
我正在创建一个应用程序(Android),以使用react native记录电话中的语音。 一个要求是实时测量语音的响度,并根据该响度制作动画。 我尝试使用react-native-audio库,但问题是仅在IOS中支持响度监视。 我检查了展览音频库,但找不到解决方法。 是否有其他库/方法可以实时测量录制声音的响度?
我发现了这个库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()
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.