Попробуйте с этими аргументами, так как это единственный набор аргументов, которые предположительно будут работать на всех устройствах Android:
AudioRecord.getMinBufferSize(
44100,
AudioFormat.CHANNEL_IN_MONO,
AudioFormat.ENCODING_PCM_16BIT)
У меня никогда не было проблем с использованием частоты дискретизации 16000, если для вас слишком велика частота 44,1 кГц. Также имейте в виду, что это минимальный размер записи . В зависимости от вашего приложения, вероятно, было бы неплохо умножить его на 2 или 3, прежде чем использовать это значение для инициализации устройства записи звука.
Если у вас все еще есть проблемы, убедитесь, что источником звука, с которым вы инициализируете объект AudioRecord
, является MediaRecorder.AudioSource.MIC
.