2012-05-03 10 views
6

मैं एक ऐप्लिकेशन है जो माइक्रोफोन पढ़ता है। विशेष रूप से मैं माइक्रोफ़ोन में उड़ने का पता लगा रहा हूं;) यह कई एचटीसी उपकरणों पर काम नहीं करता है। मैंने एक एचटीसी Droid एरिस के साथ ही एक एचटीसी Droid Incredible उठाया है। उन लोगों के अलावा मेरे पास कई मित्रों की रिपोर्ट है जिनमें एचटीसी डिवाइस भी अपेक्षाकृत नए एचटीसी थंडरबॉल्ट को शामिल करने के लिए इस समस्या का सामना कर रहे हैं।एचटीसी शोर रद्द अक्षम

तो, एप्लिकेशन डिबगिंग पता चला है कि परिवेश कमरे शोर एक स्टारबक्स में 4,000-11,000 से पंजीकृत करता है। जैसे ही मैं माइक में उड़ता हूं इनपुट इनपुट 4000s तक गिर जाता है: हर बार, हर समय।

किसी को भी पता है कि अगर यह प्रोग्राम के रूप में निष्क्रिय किया जा सकता?

यहाँ कैसे मैं इनपुट पढ़ रहा हूँ है ...

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

उत्तर

5

यह एक बहुत छोटे से डिग्री करने के लिए settable है।

MediaRecorder.AudioSource.MIC के बजाय ऑडियो स्रोत MediaRecorder.AudioSource.VOICE_RECOGNITION का उपयोग उस इनपुट के लिए ऑडियो फ़िल्टर बंद कर देगा। आम तौर पर यह डिवाइस से डिवाइस पर फ़िल्टरिंग के संदर्भ में जंगली पश्चिम की तरह है। यहां तक ​​कि VOICE_RECOGNITION का उपयोग करने से भी सही नहीं है क्योंकि फ़िल्टर बंद होने पर केवल आइस क्रीम सैंडविच संगतता परिभाषा में अपनाया गया था। एचटीसी आइस क्रीम सैंडविच से पहले इसका इस्तेमाल कर रहा था, हालांकि आपके मामले के लिए यह शायद सही विकल्प होगा।

Android 4.0 Compatibility Definition Document की धारा 5.3 से:

ऊपर रिकॉर्डिंग विनिर्देशों के अलावा, एक आवेदन android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION ऑडियो स्रोत का उपयोग कर एक ऑडियो स्ट्रीम रिकॉर्डिंग शुरू कर दिया है जब:

  • शोर कमी प्रसंस्करण, यदि मौजूद है, तो अक्षम होना चाहिए।
  • स्वचालित लाभ नियंत्रण, वर्तमान अगर, निष्क्रिय किया जाना चाहिए।
+0

मैं तुम क्या सुझाव है की कोशिश करने का मौका नहीं मिला है। मैं आपको बकाया राशि का पुरस्कार देने जा रहा हूं क्योंकि आपका समाधान उचित लगता है, लेकिन संभावित रूप से महत्वपूर्ण रिफैक्टरिंग और परीक्षण की आवश्यकता होगी। –

+0

यह निश्चित रूप से कुछ कोड जिमनास्टिक को एक ठोस ऑडियो समाधान प्राप्त करने की आवश्यकता है जो सभी उपकरणों पर काम करता है। मुझे दर्द पता है। –

संबंधित मुद्दे