【发布时间】:2013-09-23 10:44:59
【问题描述】:
我正在尝试在两部不同的手机上测量从扬声器到麦克风的音频路径,一部运行 Android 2.3.5 的 htc Wildfire S 和一部运行 Android 4.0.3 的 htc One X。使用 Eclipse,我编写了一个使用 android.media.MediaPlayer 播放波形文件的应用程序。然而,我的录音显示,像自动增益控制之类的东西被应用于输出,因为响亮的文件被衰减,并且录音的振幅几乎相等,尽管播放的文件各自的振幅差异很大。
如何在输出之前关闭音频数据的任何处理?我想直接控制原始音频输出。
提前致谢。
【问题讨论】:
-
试试已经移植到安卓的库FMOD。如果您提供这两个示例文件。我可能会尝试使用 FMOD,因为我已经有一个工作项目。
-
谢里夫,感谢您的意见,我会看看图书馆,它是否会绕过音频处理。
-
您是否有确凿的证据表明 AGC 在 输出 上?我更有可能怀疑在 input 端使用此类。也许您可以针对其他一些来源/记录器进行测试?此外,您应该预计 API 会有相当大的延迟,每次启动会话时都会随机变化。
-
嗨,克里斯,你说得对,每次我开始播放和录制时,API 都会引入一些随机延迟。这不是一个大问题,因为我之后会根据互相关同步数据。 DRC/AGC/Limiter/Leveller 或任何你可能称之为的东西实际上会影响输出:我在扬声器前面安装了一个参考麦克风,问题就出现了。至于设备的麦克风,我选择了 VOICE_RECOGNITION 作为 AudioSource,它提供了未修改的输入。
-
感谢大家对我的问题的贡献。我会将赏金奖励给迈克,因为您的回答实际上使我走上了一条新的道路。我还不能确定哪个答案会带来可行的解决方案。一旦我想出一个,我会接受适当的答案。
标签: android eclipse adt audio-processing htc-android