为什么Nexus 7和Nexus 10在相同的操作系统上会有不同的音频延迟?

时间:2013-04-17 15:24:58

标签: android audio low-latency nexus-7

我已经读过Android 4.2 Jelly Bean OS上的音频延迟已降至12毫秒。但是,我还读到Nexus 10可以使用这种改进,但Nexus 7没有。

这两款设备如何使用相同的操作系统但却有不同的音频延迟?这些信息准确吗?

1 个答案:

答案 0 :(得分:3)

AudioHardwareInterface的具体实施是电话供应商的实施决策 - 在许多情况下,它建立在alsa上,但并非必须如此。

低于此级别,所使用的SoC平台有很多选择(Nexus 7中的nVidia Tegra3和Nexus 10中的Samsung Exynos)。在这个级别下,操作系统肯定相同。

可能影响延迟的因素包括:

  • 用于音频的DMA缓冲区的硬件限制 - 最小尺寸或要求它为2的幂级。
  • 设备驱动程序强制执行的最小缓冲区大小 - 是否合理。
  • 低延迟意味着音频需要更频繁地进行服务 - 一直到应用程序堆栈。理想情况下,您需要能够为任何产生音频的线程获得实时调度,并能够mlock程序代码和内存中的堆栈。如果你不能得到这个(我怀疑你仍然不能在Android上),选择延迟值使得音频在大多数情况下可靠地运行。