小编Sai*_*ifi的帖子

android AcousticEchoCanceler 似乎不适用于大多数设备

我正在构建一个应用程序,它需要麦克风取消来自扬声器的任何声音。似乎这个问题几乎是一个在线阴谋,因为其他有完全相同问题的人在很长一段时间内都没有得到回应。

Android 的原生硬件加速 AcousticEchoCanceler 似乎不适用于大多数设备。在许多设备上进行的测试以及似乎可以正常工作的设备包括 Nexus 5 和 Moto X,而几乎所有测试的三星设备都无法去除背景声音。注意:所有测试的手机都返回 trueAcousticEchoCanceler.isAvailable()

然而,必须有一个解决方案,因为诸如 Skype 或 WhatsApp 之类的应用程序似乎会取消其应用程序上下文之外的声音,即扬声器上有呼叫并且麦克风会取消收到的任何反馈。

这个简化的录音应用程序将声音录制到文件中,然后在单击播放时播放。

主活动.java

public class MainActivity extends Activity {

Button startRec, stopRec, playBack;
int minBufferSizeIn;
AudioRecord audioRecord;
short[] audioData;
Boolean recording;
int sampleRateInHz = 48000;
private String TAG = "TAG";

/**
 * Called when the activity is first created.
 */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    startRec = (Button) findViewById(R.id.startrec);
    stopRec = (Button) findViewById(R.id.stoprec);
    playBack = (Button) findViewById(R.id.playback);

    startRec.setOnClickListener(startRecOnClickListener);
    stopRec.setOnClickListener(stopRecOnClickListener);
    playBack.setOnClickListener(playBackOnClickListener);
    playBack.setEnabled(false); …
Run Code Online (Sandbox Code Playgroud)

java audio android aec audioeffect

7
推荐指数
1
解决办法
4521
查看次数

标签 统计

aec ×1

android ×1

audio ×1

audioeffect ×1

java ×1