getMaxAmplitude는 마지막으로 호출 한 이후 최대 진폭을 반환합니다.
처음 호출 할 때 두 번째로 자체를 초기화 (0을 반환)하므로 다른 값을 반환해야합니다. 설명서에 따르면
getMaxAmplitude()를이 방법으로 최근의 콜 이후 채취 최대 절대 진폭을 반환한다. setAudioSource() 후에 만 호출하십시오. 당신이 바로 그것을 사용하는 경우 내가 가지고, 당신은 같은 문제가 처음
을 요구하거나
는 최대 절대 마지막 호출 이후 측정 된 진폭, 또는 0을 돌려줍니다. 내 코드는 GalaxyTab 7 (Froyo)에서 작동하지만 10.1 (Honeycomb)에서는 작동하지 않습니다.
편집 : 내 문제를 해결했습니다 (도움이되기를 바랍니다). 처음으로 getMaxAmplitude를 호출 할 때, 초기화하기 위해 start()를 먼저 호출해야합니다. 내가 사용 :이 있었어야
recorder.prepare();
recorder.getMaxAmplitude();
recorder.start();
//listening to the user
int amplitude = recorder.getMaxAmplitude();
:
recorder.prepare();
recorder.start();
recorder.getMaxAmplitude();
//listening to the user
int amplitude = recorder.getMaxAmplitude();
편집 :이 코드는 여전히 보인다 결함을 가지고있다. 예를 들어,이 코드는 S2에서 작동하지 않습니다. 하지만 0을 반환합니다.하지만 getMaxAmplitude()는 두 번만 호출하므로 매 초마다 진폭을 업데이트해야하는 경우 괜찮을 수 있습니다.