私はAndroidで働いています。マイクを介してオーディオファイルを録音するにはどうすればよいですか?また、録音したファイルをエミュレータに保存するにはどうすればよいですか?
Androidで音声を録音するのは簡単です。あなたがする必要があるのは:
1)メディアレコードクラスのオブジェクトを作成します:MediaRecorder recorder = new MediaRecorder();
2)エミュレータでは、記録したデータをメモリに保存できないため、SDカードに保存する必要があります。したがって、最初にSDカードの可用性を確認します。次に、次のコードで記録を開始します。
String status = Environment.getExternalStorageState();
if(status.equals("mounted")){
String path = your path;
}
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(path);
recorder.prepare();
recorder.start();
3)停止するには、アクティビティの停止メソッドをオーバーライドします
recorder.stop();
recorder.release();
これはサンプルコードを使った良いチュートリアルです。
次の手順が含まれます。
基本的に、オーディオファイルを単純なWAVファイルとして書き込む簡単な方法はありません。 AudioRecorder
は、生の線形PCM形式でデータを生成します。また、AndroidのAPIは、オーディオデータバッファーのみを提供します。
自分でWAVファイルを作成する必要があります。これが意味することは、すべてのチャンク(RIFFヘッダー、FMT、およびDATAチャンク)を自分で追加する必要があるということです。
私はAndroidでWAVファイルを録音しようとしました。しかし、どういうわけか、それは録音しているだけです。ステレオのみのWAVファイルであり、次のパラメータでオーディオレコーダーを使用する必要があります
recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,
RECORDER_SAMPLERATE, AudioFormat.CHANNEL_IN_MONO,RECORDER_AUDIO_ENCODING, bufferSize);
recorder.startRecording();
レコーダーから、すべてのデータを1つのファイルに書き込む必要があります。また、ヘッダー情報を提供する必要があります。
その後、
recorder.stopRecording();
しかし、AudioFormat.CHANNEL_IN_MONO..itを与えても、ステレオ形式で録音するという問題が1つだけあります。私の答えがお役に立てば幸いです。