2012-05-03 38 views
6

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; 
     } 
    } 

Trả lời

5

Đó là settable đến một mức độ rất nhỏ.

Sử dụng nguồn âm thanh MediaRecorder.AudioSource.VOICE_RECOGNITION thay vì MediaRecorder.AudioSource.MIC sẽ tắt bộ lọc âm thanh cho đầu vào đó. Nói chung nó là loại phía tây hoang dã về lọc bạn nhìn thấy từ thiết bị đến thiết bị. Ngay cả khi sử dụng VOICE_RECOGNITION không hoàn hảo vì việc lọc bộ lọc chỉ được chấp nhận theo định nghĩa tương thích Ice Cream Sandwich. HTC đã sử dụng nó trước khi Ice Cream Sandwich mặc dù vậy cho trường hợp của bạn nó có lẽ sẽ là sự lựa chọn đúng.

Từ mục 5.3 của Android 4.0 Compatibility Definition Document:

Ngoài các thông số kỹ thuật ghi trên, khi một ứng dụng đã bắt đầu ghi một dòng âm thanh bằng cách sử dụng nguồn android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION âm thanh:

  • xử lý giảm tiếng ồn, nếu có, PHẢI bị vô hiệu hóa.
  • Điều khiển tăng tự động, nếu có, PHẢI được tắt.
+0

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ể. –

+0

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. –

Các vấn đề liên quan