2012-06-16 19 views
6

मैं एक वॉयस रिकॉर्डर एप्लिकेशन पर काम कर रहा हूं। मैं जानना चाहता हूं कि इसे रिकॉर्ड करते समय ऑडियो की ताकत खोजने का कोई तरीका है। मैं कहीं भी रिकॉर्डिंग को सहेजना नहीं चाहता हूं। मैं बस उपयोगकर्ता को दिखाना चाहता हूं अगर माइक द्वारा पकड़ा गया आवाज जोर से एक पूर्वनिर्धारित दहलीज है या नहीं।रिकॉर्डिंग करते समय ऑडियो की ताकत (तीव्रता) की जांच कैसे करें?

मान लें कि अगर ध्वनि 2 डेसीबेल में पकड़ी जा रही है, तो इसे लाल कैनवास में "कम" दिखाना चाहिए। जैसे ही ध्वनि जोर से हो जाती है और 2 डेसीबल थ्रेसहोल्ड पास करती है, कैनवास को हरा बदलना चाहिए और "उच्च" संदेश दिखाना चाहिए।

क्या MediaRecorder का उपयोग करना संभव है या मैं ऑडियो रिकॉर्डर वर्ग का उपयोग कर रहा हूं। और इसे कैसे काम करें।

अग्रिम धन्यवाद

+0

हाय ले जा रहे हैं ... क्यों downvote .. यह सब इतना मानदंडों को पूरा करने में पूरी तरह से उचित सवाल था .. ?? – Pargat

उत्तर

9

में आप जब शुरू रिकॉर्डिंग एक और धागा शुरू करने और getMaxAmplitude फ़ंक्शन का उपयोग आयाम कब्जा करने के लिए कर सकते हैं।

नीचे है snippet.here हम हर 250 मिलीसेकंड के लिए नमूना और गणना की अधिकतम आयाम

public void run() { 
      int i = 0; 
      while(i == 0) { 

       try { 
        sleep(250); 
       } catch (InterruptedException e) { 
        e.printStackTrace(); 
       } 
       if (mRecorder != null) { 
        amplitude = mRecorder.getMaxAmplitude(); 

        //Here you can put condition (low/high) 
        Log.i("AMPLITUDE", new Integer(amplitude).toString()); 
       } 

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