我正在尝试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) {
    ...

当然,有更好的方法!

This chart表示唯一支持的音频输入采样率为8 kHz?那是对的吗?

最佳答案

您已经看过AudioTrack.getNativeOutputSampleRate(int streamType)吗?

关于android - 如何确定Android上的音频功能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2420726/

10-13 04:07