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

lbr*_*anl 5 android speakerphone speaker audiorecord android-audiomanager

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

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

我考虑过的一些事情是:

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

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

  • 在我的AudioRecord对象的构造中更改AudioSource参数:

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

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

    提前致谢,

    小智 1

    Android目前不支持通话录音,所以我相信你不能将其更改为从耳机录音。然而,您实际上并不需要这样做,手机底部的麦克风应该能够以您需要的全部容量录制内容。要将 AudioRecord 设置为麦克风,只需执行以下操作:

    AudioRecord ar = new AudioRecord(AudioSource.MIC, ..., ..., ..., ...);
    
    Run Code Online (Sandbox Code Playgroud)

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