私は、マイクの入力を録音していると同時に、スピーカーを介して MP3 ファイルを再生できる必要があるアプリケーションに取り組んでいます。
MP3 ファイルのエコーをキャンセルする必要があります。AcousticEchoCanceler を使用しようとしましたが、うまくいきませんでした。
これで、プロジェクトに speex ライブラリが統合されました。EchoCanceller 関数のインターフェイスは次のようになります。
public native static short[] process(short[] inputFrame, short[] echoFrame);
問題は、"echoFrame" (現在再生中の MP3 ファイルのデータ) を取得する方法がわからないことです。MediaPlayer を使用して再生しています。
MP3ファイルからエコーをキャンセルすることはできますか? それとも、MP3 を PCM に変換して、SoundTrack 経由で再生する必要がありますか? 読んでくれてありがとう。