2011-02-10 20 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(); 

しかし、保存ファイル(reverseme.pcm)を開いて再生できません。 助けてください、ありがとう。AudioRecordはどのようにファイル(PCM.WAV)を保存しますか?

答えて

0

AudioRecord.getMinBufferSizeのパラメータを設定するときにはchannelConfiguration = AudioFormat.CHANNEL_CONFIGURATION_MONOを選択しますが、設定する必要のある辞書を検索することができます。channelConfigは、オーディオチャンネルの設定を示します。 CHANNEL_IN_MONOおよびCHANNEL_IN_STEREOを参照してください。

+0

こんにちは、ソリューションを見つけた場合は、私と共有してください。 –

関連する問題