录音时如何检查音频的强度(强度)?

Par*_*gat 7 android voice-recording

我正在研究录音机应用程序.我想知道有没有办法在录制时找到音频的强度.我不想在任何地方保存录音.我只想向用户显示麦克风捕获的声音是否大于预定义的阈值.

假设声音在低于2分贝的情况下被捕获,它应该在红色画布中显示为"低".一旦声音变大并超过2分贝阈值,画布应该变为绿色并显示"高"消息.

是否可以使用MediaRecorder或我必须使用AudioRecorder类.以及如何解决这个问题.

提前致谢

Vip*_*hah 11

您可以在录制开始和使用getMaxAmplitude功能时启动另一个线程以捕获振幅.

下面是片段.我们每250毫秒采样一次并计算最大幅度

public void run() {
            int i = 0;
            while(i == 0) {

                try {
                    sleep(250);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                if (mRecorder != null) {
                    amplitude = mRecorder.getMaxAmplitude();

                    //Here you can put condition (low/high)
                    Log.i("AMPLITUDE", new Integer(amplitude).toString());
                } 

            }
        }
Run Code Online (Sandbox Code Playgroud)