2012-06-16 2 views
6

나는 음성 녹음 응용 프로그램 작업을하고 있습니다. 녹음하는 동안 오디오의 힘을 찾을 수있는 방법이 있는지 알고 싶습니다. 녹음을 어디서나 저장하고 싶지 않습니다. 마이크가 잡은 사운드가 더 크고 미리 정의 된 임계 값인지 아닌지를 사용자에게 보여주고 싶습니다.녹음하는 동안 오디오의 강도 (강도)를 확인하는 방법은 무엇입니까?

소리가 2 데시벨 이하로 잡히면 빨간색 캔버스에 "낮음"으로 표시되어야합니다. 소리가 커지고 2 데시벨 임계 값을 지나면 캔버스가 초록색으로 바뀌고 "높음"메시지가 나타납니다.

MediaRecorder를 사용하거나 AudioRecorder 클래스를 사용할 수 있습니까? 그리고 그것을 해결하는 방법. 시작을 녹음 할 때 다른 스레드를 시작하고 진폭을 캡처 getMaxAmplitude 기능을 사용할 수 있습니다 사전

+0

이완을 복용하고있다 .. ?? – Pargat

답변

9

감사합니다. ...이 모든 SO 기준을 충족 완전히 적절한 질문을 왜 downvote 아래

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

      } 
     } 
관련 문제