2012-06-16 29 views
6

Ses kaydedici uygulaması üzerinde çalışıyorum. Onu bilmek için sesin gücünü bulmak için herhangi bir yolu olduğunu bilmek istiyorum. Kayıtları herhangi bir yere kaydetmek istemiyorum. Ben sadece mikrofon tarafından yakalanan sesin daha önceden belirlenmiş bir eşik olsun ya da olmasın kullanıcıya göstermesini istiyorum.Kayıt sırasında sesin gücü (yoğunluğu) nasıl kontrol edilir?

Sesin 2 desibelin altında kalması durumunda, kırmızı bir tuvalde "düşük" göstermesi gerektiğini varsayalım. Ses yükseldiğinde ve 2 desibel eşiği geçtiğinde, tuval yeşile dönmeli ve "yüksek" mesaj göstermelidir.

MediaRecorder kullanarak veya AudioRecorder sınıfını kullanmak zorunda mıyım? Ve nasıl çalışır. Sen başlangıç ​​kaydederken başka bir iş parçacığı başlatmak ve genlikleri yakalamak için getMaxAmplitude işlevini kullanabilirsiniz peşin

+0

Hye alıyor edilir .. ?? – Pargat

cevap

9

yılında

teşekkürler. .. Bu, tüm SO normları yerine tamamen uygun soruyu neden downvote Aşağıda

snippet.here biz ... her 250 milisaniyede için numune ve hesaplanan maksimum genliği

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

      } 
     } 
İlgili konular