我正在尝试使用Android的音频录制和播放功能。是否有一种方法可以枚举设备上可用的音频参数?
目前,当我传递硬件(或模拟器)不喜欢的参数组合时,我只会收到错误提示。因此,我必须“猜测”:
int bufferSize;
int sampleRate;
// does the audio hardware do 44 kHz?
sampleRate = 44100;
bufferSize = AudioRecord.getMinBufferSize(sampleRate,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT);
if (bufferSize != AudioTrack.ERROR_BAD_VALUE) {
// Nope, how about 22 kHz?
sampleRate = 22050;
}
bufferSize = AudioRecord.getMinBufferSize(sampleRate,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT);
if (bufferSize != AudioTrack.ERROR_BAD_VALUE) {
...
肯定有更好的方法!
这张图表显示,唯一支持的音频输入采样率是8 kHz?这是正确的吗?