如何获取通过 android 麦克风传入的音频流的音量?
最佳答案
可能有更简单的方法,但我知道可行的方法是使用配置为观看 MediaRecorder.AudioSource.MIC
音频的 AudioRecord
对象8 位源和记录 (AudioFormat.ENCODING_PCM_8BIT
)。您需要一个在后台运行的线程,并通过 read()
调用不断轮询对象的音频,这会用来自麦克风的音频数据填充给定的字节数组。
因为您是以 8 位录制的,所以每个音频样本的最大范围是 -128 到 127(虽然我可能有这个错误 - 它可能是从 0 到 256)。您将不得不尝试从返回的字节数组中获取最大幅度的字节,或者可能根据您的应用程序的需要获取 RMS 平均值。字节数组的大小也会在确定您的应用程序能够对输入音频音量进行采样的频率方面发挥作用。
关于android - 获取麦克风音量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3928202/