更改Android音频记录默认输入源

时间:2012-04-28 04:13:17

标签: android audiorecord android-audiomanager speaker speakerphone

我目前正在编写一个应用程序,要求录制和实时处理音频数据。为此,我正在使用AudioRecord类。除了在我的主要测试设备(一个星系连接点)上录制音频的默认设置是从后置扬声器录制时,这一切都很好。我假设大多数手机默认录音源都是背部或底部麦克风,因为当你使用手机拨打电话时,你的嘴巴接近底部。

但是,我的应用程序要求我从手机正面的扬声器录制,所以我希望有人可以帮助我如何以编程方式更改AudioRecord输入源。我已经广泛搜索了这个答案。

我考虑过的一些事情是:

  • 使用AudioManager类并打开扬声器电话,例如:

    AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
    am.setSpeakerphoneOn(true);

  • 在构建我的AudioRecord对象时更改AudioSource参数:

    AudioRecord ar = new AudioRecord(AudioSource.????, ..., ..., ..., ...);

  • 我发现API对于哪种AudioSource格式不太具体,所以我想知道是否有其他人在解决这个问题并且可以指出我正确的方向。

    提前致谢,

    1 个答案:

    答案 0 :(得分:0)

    Android目前不支持通话录音,因此我相信您无法将其更改为从听筒录音。但是,您不应该真的需要,手机底部的麦克风应该能够记录您需要的全部容量。要将AudioRecord设置为麦克风,只需执行以下操作:

    AudioRecord ar = new AudioRecord(AudioSource.MIC, ..., ..., ..., ...);
    

    这将为您提供最佳录音质量。