私は現在、マイクの入力を監視しているアプリケーションに取り組んでいますが、同時にラウドスピーカーを介して特定の MP3 曲を再生できる必要があります。私が現在直面している問題は、MP3 を再生するとすぐに、もちろんマイクがこれを認識し、音量が上がるため、より多くのデータが返されることです。
MP3 のエコーをキャンセルする必要があります。Android 独自の AcousticEchoCanceller を試しましたが、Nexus 7 でも Nexus 4 でも利用できないため、機能しませんでした。 NDK に精通しており、これを既存のコードに埋め込む方法がわかりません。
だから私はこれを見つけました:https ://github.com/mutantbob/ndk-speex Javaラッパークラスを使用したNDK-Speexですが、残念ながらクラスはSpeex形式のサウンドのエンコードとデコード専用のようで、キャンセルされないようですどんな反響も。エコー キャンセレーションを追加するために Java ラッパーを拡張することについて読んだことがありますが、適切な開始点が見つかりません。誰かが正しい方向に向けてくれますか? それとも、目的地まで別のルートをたどる必要がありますか?