Android AudioRecorder中的瞬态点击声音

时间:2013-06-13 14:02:01

标签: android android-audiorecord

我是Android编程的初学者!

我的硬件是三星Galaxy Young GT-S5360!

使用我的应用程序,我想使用麦克风源录制内容。

如果我用1000Hz或其他声音样本录制正弦,我总是会在样本开始时得到两个瞬变或点击声音。在0,200s之后,样本对我来说没问题。

我如何能够消除这些瞬变?!

这是我在网上找到的代码:

private void startrec(){
  File file = new File(Environment.getExternalStorageDirectory(),"test.pcm" ); 

  int minBufferSize = audioRecord.getMinBufferSize(44100, 
             AudioFormat.CHANNEL_CONFIGURATION_MONO, 
             AudioFormat.ENCODING_PCM_16BIT);

  short[] audioData = new short[minBufferSize];

  try {
   file.createNewFile();

   OutputStream outputStream = new FileOutputStream(file);

   BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(outputStream);

   DataOutputStream dataOutputStream = new DataOutputStream(bufferedOutputStream);

   AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC,
     44100,
     AudioFormat.CHANNEL_CONFIGURATION_MONO,
     AudioFormat.ENCODING_PCM_16BIT,
     minBufferSize);

   audioRecord.startRecording();

   while(isRecording){
    int numberOfShort = audioRecord.read(audioData, 0, minBufferSize);

    for(int i = 0; i < numberOfShort; i++){
     dataOutputStream.writeShort(audioData[i]);
    }
   }

   audioRecord.stop();
   audioRecord.release();
   dataOutputStream.close();

  } catch (IOException e) {
   e.printStackTrace();
  }
 }

单击按钮调用startrec()函数,并使用另一个按钮停止。 也许Button-Click-Sound会在开始时引起瞬变,因为它也使用相同的SOURCE(MIC)。

这也可能是一个设置问题,但我还不知道。

我还希望用44100个样本p / s进行记录。 在我尝试不同的采样率期间,但仍存在相同的问题。

我希望有人可以帮助我,并可以给我一些建议!

度过美好的一天!

0 个答案:

没有答案