我是Android编程的初学者!
我的硬件是三星 Galaxy Young GT-S5360!
在我的应用程序中,我想使用麦克风源录制一些东西。
如果我用 1000Hz 或其他声音样本录制正弦波,我总是会在样本开头得到两个瞬变或咔哒声。0,200 秒后,样本对我来说还不错。
我怎样才能消除这些瞬变?!
这是我在网上找到的代码:
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 记录。在此期间,我尝试了不同的采样率,但仍然存在同样的问题。
我希望有人可以帮助我,可以给我一些建议!
祝你今天过得愉快!