首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android回声消除

Android回声消除
EN

Stack Overflow用户
提问于 2011-05-23 19:02:16
回答 2查看 9.9K关注 0票数 3

我正在尝试使用android api中的AudioRecord类开发一个音频捕获应用程序,设置,音频源如何MediaRecorder.AudioSource.MIC,应用程序如何工作,但是当我尝试使用回声消除,设置MediaRecorder.AudioSource.VOICE_COMMUNICATION如何源时,当创建AudioRecorder对象时,IllegalArgumentException抛出,但我不知道为什么:

我的代码是:

代码语言:javascript
复制
private static final int SAMPLE_RATE = 16000;
private static final int BIT_ENCODING = AudioFormat.ENCODING_PCM_16BIT;
private static final int CHANNEL_CONFIGURATION = AudioFormat.CHANNEL_CONFIGURATION_MONO;

private int m_i32BufferSize;

private AudioRecord m_AudioRecorder;

public caudioCapture ()
{
    super ();

    m_i32BufferSize = AudioRecord.getMinBufferSize(SAMPLE_RATE, CHANNEL_CONFIGURATION, BIT_ENCODING);

    //Create audio recorder object 
    try
    {
        m_AudioRecorder = new AudioRecord (MediaRecorder.AudioSource.VOICE_COMMUNICATION,SAMPLE_RATE,CHANNEL_CONFIGURATION,BIT_ENCODING,m_i32BufferSize);

    }
    catch (IllegalArgumentException e)
    {
        throw new IllegalArgumentException("Bad arguments on AudioRecorder creation", e);
    }

在我的android清单中,我有:

使用-权限android:name="android.permission.RECORD_AUDIO“

也许是因为我使用的是三星的galaxy tab p1000,而它运行的是Android2.2?有什么想法吗?

非常感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-01 17:30:44

是的没错。问题是你使用的是Android2.2。新的VOICE_COMMUNICATION是在Android3.0中引入的。当在旧版本上运行时,您将获得默认的源代码。

票数 2
EN

Stack Overflow用户

发布于 2011-08-20 00:49:09

我终于能够在我的Arm5 (WM8650)处理器上使用回声消除功能。下面是我采取的步骤。

  1. 在将PCM帧发送到编码器之前,用JNI包装了Speex,并调用了回声处理例程。无论我尝试了什么Speex设置,都没有取消任何回应。
  2. 因为Speex对回放和回应帧之间的延迟非常敏感,所以我实现了一个队列,并对发送到AudioTrack的所有数据包进行排队。队列的大小应该大致等于内部AudioTrack缓冲区的大小。这样,数据包就会在AudioTrack从其内部缓冲区向声卡发送数据包的同时发送到echo_playback。这种方法消除了延迟,但回声仍然没有被消除,
  3. 我用JNI包装了WebRtc回声消除部分,并在将数据包发送到编码器之前调用了它的方法。回声仍然存在,但库显然试图取消它。
  4. I应用了P2中描述的缓冲技术,它最终开始工作。但是,每个设备的延迟都需要进行调整。还要注意的是,WebRtc有移动版和完整版的回声消除。完整版极大地降低了处理器的运行速度,并且应该只在ARM7上运行。移动版可以使用,但

的质量较低

我希望这能对某些人有所帮助。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6096316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档