Android如何使用摄像头旁边的麦克风采集音频
最近要做一个Android平台实时对讲的东西,遇到了一些问题,在这里求助大伙。
使用Android手机默认麦克风进行实时对讲时,由于麦克风离扬声器较近,会出现较严重的啸叫、回声、噪音等现象,并且不同手机表现不一。
发现大部分Android手机都设计了两个麦克风,其中一个在摄像头旁边。
问题:
如何使用麦克风旁边的摄像头旁边的麦克风进行音频采集,同时禁用底下的默认麦克风?
这里使用AudioRecord进行音频采集,其构造器如下:
AudioRecord(int audioSource, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes)
其中第一个参数就是选择录音源的,其可选参数如下:
MediaRecorder.AudioSource.CAMCORDER
MediaRecorder.AudioSource.DEFAULT
MediaRecorder.AudioSource.MIC
MediaRecorder.AudioSource.VOICE_CALL
MediaRecorder.AudioSource.VOICE_COMMUNICATION
MediaRecorder.AudioSource.VOICE_DOWNLINK
MediaRecorder.AudioSource.VOICE_RECOGNITION
MediaRecorder.AudioSource.VOICE_UPLINK
通常使用参数MediaRecorder.AudioSource.MIC,对应的就是手机底下的主麦克风。
而参数MediaRecorder.AudioSource.CAMCORDER,应该对应的是摄像头旁边的麦克风。
现在在使用过程中遇到了问题,不同手机在使用参数MediaRecorder.AudioSource.CAMCORDER时,表现出来的结果不一,具体如下:
1、华为手机,正常选择摄像头旁边的麦克风;
2、三星手机,同时选择摄像头旁边的麦克风和底下的麦克风;
3、魅族手机,只选择底下的麦克风。
那么,如何做到只使用麦克风旁边的摄像头旁边的麦克风进行音频采集,同时禁用底下的默认麦克风?