我正在研究录音机应用程序.我想知道有没有办法在录制时找到音频的强度.我不想在任何地方保存录音.我只想向用户显示麦克风捕获的声音是否大于预定义的阈值.
假设声音在低于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()); } } }