を使用してヘッドセットのマイクからオーディオを受信しAudioRecord
、オーディオをリアルタイムでヘッドフォンに再生しようとしAudioTrack
ています。必要なコードを実装しましたが、問題は邪魔なエコーがあることです。スピーカーは使用せず、ヘッドフォンを使用しています。では、このエコーの原因は何ですか? API レベル 11 で導入されたデバイスのエコーキャンセラーを使用し、エコーが減少しましたが、消えませんでした。Android デバイスのオーディオ遅延は認識していますが、ヘッドフォンを使用しているときに遅延がどのようにエコーを引き起こすのか理解できません。私を正しい方向に導いてください。
1 に答える
この問題に対する一般的な解決策はないと思います。理由は
1) ヘッドフォンの品質が悪い可能性があります。ワイヤがヘッドフォン内で非常に接近しているため、マイクとヘッドフォンの間に内部カップリングがある可能性があります。
2) Android のエコー キャンセラは、すべてのデバイスで実装する必要はありません。最初にクエリして設定してみてください。また、エコー キャンセラの実装はデバイスによって異なる場合があります。
3) 遅延は、アルゴリズムが遅延に適応し、それだけ多くのオーディオをバッファリングする必要があるため、エコー キャンセラのパフォーマンスに大きく影響します。
4) Android の下位バージョンには、Google 自身が認識している恐ろしい遅延の問題があります。これらの点が大幅に改善されているため、Android の上位バージョンに移行することをお勧めします。
一般に、 mic や camera などのハードウェアに直接アクセスする API はすべて、デバイスによってパフォーマンスが異なり、パフォーマンスを保証することはできません。
統合を検討している場合は、より優れたオーディオ パフォーマンスと AEC ライブラリへの統合を容易にするために、openSLES を検討することをお勧めします。
ご覧ください - https://source.android.com/devices/latency_design.html Android での低遅延オーディオ再生 https://www.youtube.com/watch?v=d3kfEeMZ65c
お役に立てれば、
よろしく、 シュリッシュ