android - 麦克风输入

标签 android android-mediarecorder

我正在尝试构建一个使用 Android 检测手枪射击的小工具。它是手枪射手训练辅助工具的一部分,它告诉我射击是如何及时分布的,我使用 HTC Tattoo 进行测试。

我使用 MediaRecorder 及其 getMaxAmplitude 方法在最后 1/100 秒内获得最高振幅,但它没有按预期工作; speech 给了我 getMaxAmplitude 的值,范围从 0 到大约 25000,而手枪射击(或喊叫!)仅达到大约 15000。采样频率为 8kHz 时,应该有一些样本具有相当高的电平。

有人知道这些东西是如何工作的吗?在注册最大振幅之前是否应用了过滤器。如果有,是硬件还是软件?

谢谢, /乔治

最佳答案

似乎有一个 AGC(自动增益控制)过滤器。您还应该能够通过频率特征来识别镜头。我预计它会出现在大部分可听频谱中,但请使用频谱分析仪(应用程序市场上有一些,如 SpectralView)并尝试通过其频率“特征”和振幅来识别事件。如果你拍手,你会得到什么最大振幅?您也可以尝试用一些东西盖住手机以消除声音,例如几层布

关于android - 麦克风输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2477308/

相关文章:

android - 在 Android 中使用 MediaRecorder 录制时使用 ffmpeg 处理视频

Android - MediaRecorder 输出以流式传输 ffmpeg

android - 在单个目录中存储多个音频文件-Android

java - cpu/内存绑定(bind)环境中大图的最佳数据结构

android - FragmentStatePagerAdapter中 "isViewFromObject (View view, Object object)"的作用是什么?

android - 按日期排序 - Realm (Android)

android - 通过 Gradle 命令运行具有代码覆盖率的 Android 测试

Android getSupportedVideoSizes 总是返回 null

java - ListView 滚动时隐藏搜索栏

android - 暂停......选项像默认的相机应用程序?