Tôi có một ứng dụng đọc micrô. Cụ thể là tôi phát hiện thổi vào micro;) Nó không hoạt động trên nhiều thiết bị HTC. Tôi đã chọn một chiếc HTC Droid Eris cũng như một chiếc HTC Droid Incredible. Ngoài những người tôi có báo cáo từ nhiều bạn bè có thiết bị HTC cũng gặp vấn đề này để bao gồm HTC Thunderbolt tương đối mới.Tắt hủy tiếng ồn HTC
Vì vậy, gỡ lỗi ứng dụng đã cho thấy tiếng ồn phòng xung quanh đăng ký từ 4000-11000 trong Starbucks. Ngay sau khi tôi thổi vào mic, khối lượng đầu vào giảm xuống 4000s: mọi lúc, mọi lúc.
Bất kỳ ai biết điều này có thể bị vô hiệu hóa theo chương trình không?
Đây là cách tôi đang đọc đầu vào ...
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;
}
}
Tôi chưa có cơ hội thử những gì bạn đề xuất. Tôi sẽ trao cho bạn một phần tiền thưởng vì giải pháp của bạn có vẻ hợp lý, nhưng sẽ yêu cầu khả năng tái cấu trúc và thử nghiệm đáng kể. –
Nó chắc chắn đòi hỏi một số thể dục dụng cụ mã để có được một giải pháp âm thanh vững chắc hoạt động trên tất cả các thiết bị. Tôi biết nỗi đau. –