타이머를 사용하는 경우 앱이 데이터를 읽을 때 버퍼 내에있는 데이터의 양을 정확하게 제어 할 수 있다고 생각하지 않습니다.
오디오 데이터를 5 초 녹음하는 방법은 this class의 기술을 사용하는 것입니다.
코드는 오디오 버퍼의 크기를 신중하게 설정하여 일정 시간 동안 데이터가 기록 된 후에 콜백합니다. 이 클래스에서 잘라낸 것입니다.
public boolean startRecordingForTime(int millisecondsPerAudioClip,
int sampleRate, int encoding)
{
float percentOfASecond = (float) millisecondsPerAudioClip/1000.0f;
int numSamplesRequired = (int) ((float) sampleRate * percentOfASecond);
int bufferSize =
determineCalculatedBufferSize(sampleRate, encoding,
numSamplesRequired);
return doRecording(sampleRate, encoding, bufferSize,
numSamplesRequired, DEFAULT_BUFFER_INCREASE_FACTOR);
}
그런 다음 나중에 코드에서 바로 수행이 :
while (continueRecording)
{
int bufferResult = recorder.read(readBuffer, 0, readBufferSize);
//do stuff
}
readBufferSize이 바로이기 때문에, 당신이 (약간의 변화에) 당신이 원하는 데이터의 양
멋진 대답을 얻을 것이다. ..이 정보가 큰 도움이 될 것이라고 확신합니다 :-) – Sumit