6

私はオーディオを録音し、その録音の機能を得るために処理する必要があるオーディオ処理アプリケーションを開発しています。しかし、MediaPlayerを使用して再生するには、再生可能な形式のオーディオが必要です。Android AudioRecord and MediaRecorder

これを処理するためにオーディオを録音することは、そこから生のオーディオを得ることができるため、AudioRecordを使用する方が良いことがわかりました。しかし、私は再生可能な形式でファイルにデータを書き込むことはできません(アンドロイドでこれを行うライブラリはありますか?)。

私は生のデータを記録し、ファイルにそれを書くために、このメソッドを使用: http://andrewbrobinson.com/2011/11/27/capturing-raw-audio-data-in-android/ しかし、私は、デバイス上でこのファイルを再生しようとすると、それが再生可能ではありません。

私がMediaRecorderを使用する場合、データをデコードして機能を抽出する方法がわかりません。私はMediaExtractorを見てきましたが、MediaExtractorはフレームをデコードしません。

これを行うにはどうすればよいですか?私はそれがどのオーディオ処理アプリケーションでも共通していると思いますが、これを管理する方法を見つけることができませんでした。

返信いただきありがとうございます。

答えて

16

AudioRecordを使用すると、処理のどんなことをする必要がある場合に行くための正しい方法です。それを再生するには、いくつかのオプションがあります。 のアプリで再生する場合は、MediaPlayerの代わりにAudioTrackを使用して、未処理のPCMストリームを再生できます。

他のアプリケーションで再生できるようにするには、最初に別のアプリケーションに変換する必要があります。 WAVは通常headerを追加するだけでよいので、最も簡単です。また、OGGのJOrbisやMP3のJLayerなどの他の形式に変換するライブラリを見つけることもできます。

+0

ありがとう、これは私のために働いた。最後に、オーディオをraw pcmファイルに記録し、AudioTrackを使用して再生できました。 – Miquel

2

AudioRecordオブジェクトを使用して生のオーディオ信号を取得する場合、保存する次のステップは再生可能なファイルとして保存しますそれほど難しいことではなく、キャプチャしたオーディオデータの前にWAVヘッドを追加するだけで、ほとんどの携帯電話で再生できる.WAVファイルが得られます。

A .WAVファイルは、RIFF形式のファイルです。 WAVファイルのRIFFヘッダーは44バイト長で、サンプルレート、サンプル幅、およびチャンネル数情報が含まれています。詳細情報を入手できますhere

Android携帯でサンプル機能を実行しました。

関連する問題