【发布时间】:2019-05-22 18:53:21
【问题描述】:
我正在构建一个 react-native 应用程序。 我正在尝试测量当前的声级(以分贝为单位)。
正在使用的库:react-native-audio 和 react-native-sound。
有人熟悉这个功能吗?
谢谢。
【问题讨论】:
标签: android audio react-native
我正在构建一个 react-native 应用程序。 我正在尝试测量当前的声级(以分贝为单位)。
正在使用的库:react-native-audio 和 react-native-sound。
有人熟悉这个功能吗?
谢谢。
【问题讨论】:
标签: android audio react-native
使用 react-native-audio 库,您可以获得唯一 iOS 的计数。
对于Android中的currentMetering,需要在原生模块中自定义。我已经更新它在您的 package.json 文件中添加以下内容,而不是您的代码。您将获得 Android 和 iOS 的 currentMetering 计数。
"react-native-audio": "git+https://github.com/Harsh2402/react-native-audio.git",
【讨论】:
您可以使用react-native-audio currentMetering 值 - 以便实时获取声级。
首先,您必须初始化您的录音机(我假设您已经完成了)。我以与下面类似的方式使用prepareRecordingAtPath
AudioRecorder.prepareRecordingAtPath(audioPath, {
SampleRate: 22050,
Channels: 1,
AudioQuality: "Low",
AudioEncoding: "aac",
MeteringEnabled: true
});
然后,一旦您调用了 AudioRecorder.startRecording();(请注意,您还可以访问 .pause() 和 .stop() 方法
现在为了处理音频电平,您将不得不检索onProgress 方法返回的数据。据我记得,应该有一些currentMetering 值可以访问。请注意,定义此行为将在每次检索到不同的分贝读数时触发该操作。像这样
AudioRecorder.onProgress = data => {
let decibels = Math.floor(data.currentMetering);
//DO STUFF
};
希望这会有所帮助,
【讨论】:
metering: true 而不是MeteringEnabled: true. 请注意-该功能仅适用于IOS。存储库中有一个用于 android 计量支持的开放 PR。只有根据此 PR:github.com/jsierles/react-native-audio/pull/185/commits