2016-01-08 113 views
3

您好我正在嘗試將VOIP功能添加到android應用程序。爲此我需要Acoustic Echo Cancellation。
我已經看到AcousticEchoCanceler here的官方文檔。
我使用這段代碼的聲學回聲消除:Android AcousticEchoCanceler NOT Working

if(AcousticEchoCanceler.isAvailable()) { 
      echoCanceler = AcousticEchoCanceler.create(mAudioRecord.getAudioSessionId()); 
      echoCanceler.setEnabled(true); 
     } 

但這似乎並沒有幫助的。 isAvailable()返回true並創建echoCanceler對象。如果我查詢echoCanceler.getEnabled()它也返回true。

即使我使用AudioRecord和AudioTrack製作示例應用程序,這也不起作用。我聽到很多回聲。
如果我設置AudioRecord來源爲:

android.media.MediaRecorder.AudioSource.VOICE_COMMUNICATION

我看到回聲獲取的Nexus 5的情況下取消(針對Android版本5 6)。
(當我將源設置爲VOICE_COMMUNICATION時,我沒有使用AcousticEchoCanceler)但是對於相同的Android版本,同樣的方法不適用於Samsung Galaxy S4和Samsung Note 4等設備。
使用回聲消除庫(如libspeexdsp等)是不可能的(因爲我正在處理一個現有的項目)。
請儘快提供幫助。
非常感謝。

+0

這樣的運氣呢?我有同樣的問題。 設備有AcousticEchoCanceler,似乎工作: 的Nexus 5(Android版本:6.0.1) 極限摩托(Android版本:5.1.1) 似乎沒有工作: 三星Galaxy大總理(Android版本:5.1。 1) Samsung Galaxy S6Edge(Android版本:5.1.1) HTC One – rmp251

+1

嘗試將音頻模式設置爲「MODE_IN_COMMUNICATION」。 –

+0

Vivek這是我的情況的問題! – rmp251

回答

0

確保音頻模式設置爲MODE_IN_COMMUNICATION