解答几个问题
1. 录音缓冲区大小(buffer size)问题,小:提高响应时间,但是容易丢录音数据;大:响应慢,不容易丢录音数据;研究下内部的实现方式。
2. 音频播放实时问题,怎样让一段很小音频数据(40ms)及时播放出来
status_t AudioRecord::getMinFrameCount(
int* frameCount,
uint32_t sampleRate,
int format,
int channelCount)
{
size_t size = 0;
if (AudioSystem::getInputBufferSize(sampleRate, format, channelCount, &size)
!= NO_ERROR) {
LOGE("AudioSystem could not query the input buffer size.");
return NO_INIT;
}
if (size == 0) {
LOGE("Unsupported configuration: sampleRate %d, format %d, channelCount %d",
sampleRate, format, channelCount);
return BAD_VALUE;
}
// We double the size of input buffer for ping pong use of record buffer.
size <<= 1;
if (AudioSystem::isLinearPCM(format)) {
size /= channelCount * (format == AudioSystem::PCM_16_BIT ? 2 : 1);
}
*frameCount = size;
return NO_ERROR;
}