Android中麦克风阈值监控的最低电池消耗

时间:2014-02-07 14:50:23

标签: android performance audio microphone

我想设计一个小型Android应用,当麦克风的阈值高于特定原始值时触发事件。

有些事情:http://code.google.com/p/android-labs/wiki/NoiseAlert

由于这是一项永远在线的服务,我希望将电池消耗降至最低。

我知道声音振幅不是由系统处理的(我是对的吗?),所以我必须从原始值计算它。另外,如果没有记录,我无法测量幅度......

因此,请注意尽量减少CPU的工作量。我可以使用最低8kHz的样本,但即便如此,只是为了计算aplitude。

有没有办法使用超低采样率,如50Hz甚至20Hz?

总的来说,有什么建议可以帮助我使用该应用程序将蝙蝠消耗降至最低......?

提前多多感谢!

1 个答案:

答案 0 :(得分:0)

这会让电池很快干涸。而带有扁平电池的手机则是一种糟糕的用户体验。

我怀疑采样率会对功耗产生巨大影响。但是,缓冲期会。

虽然手机需要保持音频编解码器,DMA引擎和内存控制器几乎一直处于活动状态,但您至少可以限制CPU唤醒的次数(耗电量大的操作)。此外,在一个处理大量样本的每个样本相当便宜,不经常处理少量样本。

AudioFlinger是否修改了自己的缓冲期以响应活动应用程序,我不知道。您可能需要直接使用ALSA(在拥有它的手机上)。这具有减少每个缓冲时段执行的代码量的额外好处。