2011-02-10 4 views
0
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(); 

но, откройте файл сохранения (reverseeme.pcm), не можете играть. Помогите мне, спасибо.Как AudioRecord сохранить файл (PCM.WAV)?

ответ

0

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

+0

привет, если вы нашли решение, поделитесь им со мной. –