8

要件

AndroidはSDカードで.wavファイルを開き、再生し、エフェクト(エコー、ピッチシフトなど)を追加して、ファイルをエフェクト付きで保存します。単純 :(

私が知っていること

  1. SoundpoolまたはMediaPlayerを使用してファイルを開いて再生できます。
  2. 両方を使ってプレイしながら効果を出すことができます。つまり、メディアプレーヤーの場合、環境リバーブ効果を設定できます。SoundPoolを使用すると、ピッチシフトのような再生レートを設定できます。私は今これらを実装することに成功しています。
  3. ただし、このクラスのいずれにも、再生されたファイルを保存するためのメソッドはありません。だから私は演奏することしかできず、効果的に音楽を保存することはできません。

知りたいこと

  1. MediaPlayerまたはSoundPool以外に、他に関心のあるクラスはありますか。保存については気にしないでください。クラスについて言及するだけです。ファイルの保存について調査します。
  2. エフェクトを追加して保存できるサードパーティのライブラリはありますか?それがオープンソースで無料なら幸せです。しかし、それが独占的であっても、それらに言及してください。
  3. 私が調べることができる他の領域。OpenALは音声ポジショニングとともに音声フィルタリングをサポートしていますか?Androidで動作しますか?

汚い仕事をする準備ができました。道を貸してください。

編集:

もう少し検索して、AudioTrackに出くわしました。ただし、ファイルへの保存もサポートされません。だから、そこにも運がない。

編集

わかりました、自分でやったらどうなりますか?wavファイルから生のバイトを取得し、それに取り組みます。AudioRecordを使用してwavファイルを録音し、wavファイルを取得しました。低レベルのオーディオ処理(つまり、バイトレベル)を説明するリソースはありますか?

編集

さて、報奨金の時間は終わりました、そして私は私が得た唯一の答えに報奨金を与えています。7日後、私が理解したのは

  1. MediaPlayer、AudioTrackなどを使用して再生したものを保存することはできません。
  2. 使用できるオーディオ処理ライブラリはありません。
  3. 生のwavファイルを取得し、オーディオ処理を自分で行うことができます。答えは、wavファイルを読み書きするための優れたラッパークラスを提供しました。wavファイルのピッチを読み取って変更するための優れたJavaコードはここにあります。
4

1 に答える 1

5

WavFileクラスhttp://www.labbookpages.co.uk/audio/javaWavFiles.htmlは、wavファイルの読み取りと書き込みを行い、サンプル値の配列を介してサンプルごとの操作を可能にすると主張しています。それは確かにかなり小さく、合計23kバイトのソースコードです。

Wavfileクラスが含まれているAndroidアプリを構築するのにしばらく苦労しました。これは、WavFileとReadExample(上記のリンクから)の両方がスタンドアロンのJavaプログラムとして意図されていたためであることが判明したため、メソッドを含めますmain(String [] args){}。Eclipseはこれを認識し、クラスがスタンドアロンの実行可能なプログラムであると見なし、runボタンをクリックすると、アプリ全体を携帯電話で起動するのではなく、開発マシンでJavaを使用して1つのクラスのみを実行しようとします。ボタンの小さなドロップダウンメニューを使用してアプリ全体を実行するように注意すると、run問題は発生しません。WavFileクラスと例がすぐにドロップされ、IDEで警告がゼロになり、宣伝されているとおりに動作します。自分の携帯電話に。

于 2012-11-30T21:40:27.953 に答える