5

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

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

我考虑过的一些事情是:

  • 使用 AudioManager 类并开启免提电话,如:

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

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

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

  • 我发现 API 并不太具体说明哪些 AudioSource 格式是哪些,所以我想知道是否有其他人在这个问题上苦苦挣扎并可以为我指明正确的方向。

    提前致谢,

    4

    1 回答 1

    0

    Android目前不支持通话录音,所以我相信你不能把它改成从听筒录音。但是,您实际上并不需要,手机底部的麦克风应该能够以您需要的全部容量录制内容。要将 AudioRecord 设置为麦克风,只需执行以下操作:

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

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

    于 2012-05-10T17:50:35.287 回答