マイクを読み取るアプリがあります。具体的には、マイクに向かって息を吹きかけていることを検出しています ;) 多くの HTC デバイスでは機能しません。HTC Droid Eris と HTC Droid Incredible を手に入れました。それらに加えて、HTC デバイスを持っている多くの友人からも、比較的新しい HTC Thunderbolt を含めてこの問題が発生しているという報告があります。
そのため、アプリをデバッグすると、周囲の部屋のノイズがスターバックスで 4000 ~ 11000 に記録されることが示されました。マイクに向かって息を吹き込むとすぐに、入力音量が 4000 台まで下がります。
これをプログラムで無効にできるかどうか知っている人はいますか?
これが私が入力を読んでいる方法です...
int minBufferSize = AudioRecord.getMinBufferSize(8000, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT);
AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, 8000, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, minBufferSize);
short[] buffer = new short[minBufferSize];
audioRecord.startRecording();
audioRecord.read(buffer, 0, minBufferSize);
int i = 0;
for (short sample : buffer) {
inputVolume = Math.abs(sample);
maxVolumeIn = (inputVolume > maxVolumeIn) ? inputVolume : maxVolumeIn;
if (inputVolume >= micSensitivity) {
Log.d(TAG, "Blowing Detected. Volume Level: " + inputVolume);
break;
}
}