Я экспериментирую с аудиозаписью и воспроизведением 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 кГц? Это корректно?
Вы уже просмотрели AudioTrack.getNativeOutputSampleRate (int streamType) ?