У меня есть приложение, которое читает микрофон. В частности, я обнаруживаю дуновение в микрофон ;) Это не работает на многих устройствах HTC. Я купил HTC Droid Eris, а также HTC Droid Incredible. В дополнение к этим у меня есть сообщения от многих друзей, у которых есть устройства HTC, также испытывающие эту проблему, включая относительно новый HTC Thunderbolt.
Итак, отладка приложения показала, что окружающий шум в помещении регистрируется от 4000 до 11000 в Starbucks. Как только я дую в микрофон, громкость на входе падает до 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;
}
}