【问题标题】:How to access the second mic android such as Galaxy 3如何访问第二个麦克风 android,如 Galaxy 3
【发布时间】:2015-08-24 18:53:55
【问题描述】:

现在很多智能手机都有不止一个麦克风。一个用于语音输入,另一个用于降低环境噪音。

我想知道如何独立访问两个麦克风的信号?或者关闭其中一个麦克风?

欢迎任何想法或想法。非常感谢。

【问题讨论】:

  • 我成功分离了两个麦克风的信号。我使用的方法是迈克尔提供的。阵列中的 0,2,4 是底部的麦克风,1,2,5...是顶部的麦克风。
  • 您愿意分享您使用迈克尔的答案分离麦克风的代码吗?我有同样的问题。谢谢
  • @Foreverniu : 你能分享一下代码 sn-p 吗?

标签: android microphone


【解决方案1】:

我对 Galaxy S3 并不特别熟悉,但对于我使用过的大多数设备来说,以下情况都是正确的:

  • 没有可靠的方法来选择是使用主麦克风还是辅助麦克风进行单声道录音。 MIC AudioSource 通常表示进行单声道录音时的主麦克风,CAMCORDER source 可能表示辅助麦克风。但是不能保证这一点,因为它取决于例如关于麦克风的物理位置。

  • 以单声道录音有效地关闭了另一个麦克风,并且无论做什么降噪都只使用来自一个麦克风的信号(因此动态噪声几乎没有减少)。
    一个例外情况是,如果您在语音通话期间录制,并且两个麦克风都已启用以进行上行链路噪声抑制。
    另一个例外情况可能是您使用 VOICE_RECOGNITION AudioSource,因为一些供应商会应用噪声抑制在这个用例中使用一个或多个额外的麦克风来处理信号。

  • 从 2 麦克风设备上的两个麦克风录制立体声录音。左声道包含来自一个麦克风的输入,右声道包含来自另一个麦克风的输入,但不能保证这些声道对应于哪个物理麦克风(同样,取决于放置位置)。

【讨论】:

  • 谢谢。我觉得你的反应很棒。我还有一个额外的问题:如果我使用立体声记录,例如 ENCODING_PCM_16BIT,你知道如何将每个通道的信号分开吗?我使用audiorecord从android中获取信号。非常感谢您的帮助。
  • PCM_16BIT 只影响每个样本的分辨率。要获得立体声,您应该请求两个通道进行录音。要分离通道,只需从 PCM 流中读取备用样本(假设您使用的是AudioRecord 类)。也就是说,short[] 中的偏移量 0,2,4,6... 包含左声道样本,偏移量 1,3,5,7... 包含右声道样本。
  • 你的回答太棒了。只是确认一下:需要两个通道进行录制,下面的代码是否正确?录音机=新AudioRecord(AudioSource.MIC,iSampleRate,AudioFormat.CHANNEL_IN_STEREO,AudioFormat.ENCODING_PCM_16BIT,iAudioBufferSize);谢谢。
猜你喜欢
  • 1970-01-01
  • 2019-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多