Как AudioRecord сохранить файл (PCM.WAV)? - PullRequest
0 голосов
/ 10 февраля 2011
static final int frequency = 8000;
static final int channelConfiguration = AudioFormat.CHANNEL_CONFIGURATION_MONO;  
static final int audioEncoding = AudioFormat.ENCODING_PCM_16BIT;


recBufSize = AudioRecord.getMinBufferSize(frequency,  
                 channelConfiguration, audioEncoding);  
audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, frequency,  
                 channelConfiguration, audioEncoding, recBufSize);

File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() 
                     +"/reverseme.pcm");

OutputStream os = new FileOutputStream(file);
BufferedOutputStream bos = new BufferedOutputStream(os);
DataOutputStream dos = new DataOutputStream(bos);

short[] buffer = new short[recBufSize];  
audioRecord.startRecording();

             while (isRecording) {  

                 int bufferReadResult = audioRecord.read(buffer, 0,  
                         recBufSize);

                 for(int i = 0; i < bufferReadResult;i++) {
                     dos.writeShort(buffer[i]);
                 }
             }  
             audioRecord.stop();
             dos.flush();
             dos.close();

но, откройте файл сохранения (reverseme.pcm), не сможете воспроизвести. Помоги мне, спасибо.

1 Ответ

0 голосов
/ 09 марта 2011

Вы совершаете большую ошибку: когда вы устанавливаете параметры AudioRecord.getMinBufferSize, вы выбираете channelConfiguration = AudioFormat.CHANNEL_CONFIGURATION_MONO, но вы можете посмотреть словарь, который должен установить channelConfig, описывает конфигурацию аудиоканалов.См CHANNEL_IN_MONO и CHANNEL_IN_STEREO.

...