Android长时间运行音频采样器

时间:2012-12-19 14:34:20

标签: android audio record sampling

我想从我的Android设备的麦克风中采样大约3秒的声音。我必须使用的采样率为48kHz,16位pcm编码。我使用以下代码:

AudioRecord recorder = new AudioRecord(AudioSource.MIC, 48000, AudioFormat.CHANNEL_IN_MONO,
                    AudioFormat.ENCODING_PCM_16BIT, bufferSize); 

            if (recorder.getRecordingState() == android.media.AudioRecord.RECORDSTATE_STOPPED)
                recorder.startRecording(); 
            recorder.read(dataBuffer, 0, bufferSize); 

现在,我认为在不使用AudioRecord.getMinBufferSize的情况下为AudioRecorder构造函数提供更大的缓冲区将解决了这个问题。 (48000 * 3 = 144400个样本)但read()方法只填充缓冲区,直到位置4096,而不是整个缓冲区。为什么呢?

我怎样才能做我想做的事?

0 个答案:

没有答案