6

オーディオを録音し、それを処理してその録音の機能を取得する必要があるオーディオ処理アプリケーションを開発しています。ただし、再生可能な形式のオーディオを MediaPlayer で再生したいと考えています。

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

この方法を使用して生データを記録し、ファイルに書き込みました: http://andrewbrobinson.com/2011/11/27/capturing-raw-audio-data-in-android/ しかし、このファイルを再生しようとするとデバイスでは再生できません。

次に、MediaRecorder を使用すると、データをデコードして特徴を抽出する方法がわかりません。MediaExtractor を見てきましたが、MediaExtractor がフレームをデコードしていないようです。

だから..これを行うための最良の方法は何ですか? これはどのオーディオ処理アプリケーションでもよくあることだと思いますが、これを管理する方法を見つけることができませんでした。

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

4

3 に答える 3

16

AudioRecord何らかの処理を行う必要がある場合は、使用するのが正しい方法です。再生するには、いくつかのオプションがあります。アプリで再生するだけの場合は、生のPCMストリームを再生するAudioTrack代わりに使用できます。MediaPlayer

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

于 2012-10-08T13:02:35.420 に答える
2

最高品質の結果を得るには、MediaRecorder の代わりに AudioRecord クラスを使用する必要があります。
以下のリンクをご覧ください:
オーディオ録音の簡単な例が必要

このリンクもご覧ください: http://i-liger.com/article/android-wav-audio-recording

于 2012-10-08T11:29:41.613 に答える
2

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

.WAV ファイルは、RIFF 形式のファイルです。WAV ファイルの RIFF ヘッダーは 44 バイトの長さで、サンプル レート、サンプル幅、チャンネル数の情報が含まれています。ここから詳細情報を取得できます

Androidフォンでサンプル機能を実行しましたが、うまくいきました。

于 2014-02-06T15:33:46.420 に答える