I am testing this on a Samsung Galaxy S i9000.
int sampleRate = 44100;
int bufferSize = AudioRecord.getMinBufferSize(sampleRate,
AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_8BIT);
It returns -2 ERROR_BAD_VALUE
.
The native sample rate is 44100Hz, as returned by
AudioTrack.getNativeOutputSampleRate(AudioManager.STREAM_SYSTEM).
I have tried setting sampleRate to 1000, 8000, 22100 and 44100. I have also tried changing AudioFormat.CHANNEL_IN_MONO
to AudioFormat.CHANNEL_CONFIGURATION_MONO
. I have also tried STEREO
(both IN_STEREO
and CONFIGURATION_STEREO
). I have also tried 16 bit encoding instead of 8 bit.
Update: my Manifest has AUDIO_RECORD
as permission.
I keep getting -2 as a result. Why is this happening?