我正在开发一个录音机应用程序。我想知道在录制音频时有什么方法可以找到音频的强度。我不想将录音保存在任何地方。我只想向用户展示麦克风捕捉到的声音是否大于预定义的阈值。
假设如果声音低于 2 分贝,它应该在红色画布中显示“低”。一旦声音变大并超过 2 分贝阈值,画布应变为绿色并显示“高”信息。
是否可以使用 MediaRecorder 或者我必须使用 AudioRecorder 类。以及如何解决。
提前致谢
我正在开发一个录音机应用程序。我想知道在录制音频时有什么方法可以找到音频的强度。我不想将录音保存在任何地方。我只想向用户展示麦克风捕捉到的声音是否大于预定义的阈值。
假设如果声音低于 2 分贝,它应该在红色画布中显示“低”。一旦声音变大并超过 2 分贝阈值,画布应变为绿色并显示“高”信息。
是否可以使用 MediaRecorder 或者我必须使用 AudioRecorder 类。以及如何解决。
提前致谢
您可以在录制开始时启动另一个线程并使用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());
                } 
            }
        }