I have been working on a VoIP application (usually operated in speaker mode). The problem I am facing is that the behavior of audio recording is quite different for different models of smartphones.
Let me add a picture and explain it from there:
Most android smartphone has two mics. One at the top and One at the bottom. When I start capturing audio, some phones capture audio from the top mic while others from the bottom mic. Then there are some phones which are capturing audio from both mics.
The problem I am facing is the attenuation in the audio quality and voice diminishing when I have placed my phone in front of me on the table with the screen side facing upward. Some phones capture from the bottom mic, which provides good quality, while others capture from the top mic, and this causes issues.
Hopefully, you guys have understood the scenario. Now following are the things I need your help for
- How do I determine which mic is used for audio capturing? I have set the settings as follows:
- 我有already tried separating different channels (L/R)元和compute RMS to determine which channel is loud and map that to a specific mic. Still, unfortunately, this didn't work, as energy was the same on both media元.它推断,当我们 Select 立体声中的一个频道时,它从一个麦克风中捕获数据,然后将其以立体声形式(L,R)存储在PCM_16bit中.
- I tried using CHANNEL_IN_MONO, but the mic direction (which the mic is used for audio capturing) is still not fixable or detectable.
我试过在同样的设备上使用Whatsapp,它可以完美地捕捉音频,但在我的情况下却不是这样.
谢谢.