android – 如何在录制时检查音频的强度(强度)?

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

假设声音在低于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());
                } 

            }
        }

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...