Androidプログラミング初心者です!
私のハードウェアは Samsung Galaxy Young GT-S5360 です!
私のアプリでは、マイク ソースを使用して何かを録音したいと考えています。
1000Hz またはその他のサウンド サンプルでサインを録音すると、サンプルの先頭に常に 2 つのトランジェントまたはクリック音が発生します。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()
関数はボタン クリックで呼び出され、別のボタンで停止します。同じ SOURCE(MIC) を使用しているため、ボタン クリック サウンドが最初にトランジェントを引き起こす可能性があります。
設定の問題かもしれませんが、まだわかりません。
また、44100 サンプル p/s で記録したいと考えています。その間、さまざまなサンプル レートを試しましたが、まだ同じ問題があります。
誰かが私を助けて、アドバイスをくれることを願っています!
良い1日を!