作者 / Don Turner,Android 开发者关系工程师
本文将介绍 Android 生态系统最近针对音频开发者的动向以及热门 Android 设备的音频延迟情况,并讨论 Android 在实时音频应用方面的适用性。
在过去四年中,我们采取了一系列措施来改善音频延迟问题。
这些措施的实施以及设备制造商对音频延迟问题的重新关注,使设备生态系统得到显著改善。当前最热门 Android 手机的平均延迟已降至 40 毫秒以下,这已完全在实时应用所需的范围内。
设备热门程度来源: appbrain.com
从下方的数据可以看到,2017 年的最高值和最低值之间存在着显著差异 (222 毫秒)。
设备热门程度来源: appbrain.com
将其与 2021 年的数据进行比较。区间收窄至八分之一,仅为 28 毫秒,从而提供了更加一致的音频体验。考虑到热门名单中的 OEM 厂商已从 2017 年的一家变为多家,使得这一数字更加令人印象深刻。需要说明的是,名单中的许多设备都不是高端旗舰机型。
设备热门程度来源: appbrain.com
到目前为止,我们探讨的一直是往返音频延迟。往返延迟涉及到音频链中的三个组成部分: 音频输入、音频处理和音频输出。
许多实时音频应用都会通过屏幕点按事件生成音频,而不依赖于输入音频。此类应用对于点按与发声间延迟(即从点按屏幕到听到声音之间的用时)非常敏感。点按触摸屏引入的延迟在 10-35 毫秒之间,在新一代 Android 设备上通常为 20 毫秒。
要在确定往返延迟的情况下估算点按与发声间延迟,您可以减去音频输入延迟 (通常为 5 毫秒),并加上触摸延迟 (通常为 20 毫秒)。也就是说,在往返延迟上加 15 毫秒。鉴于上述数字,这意味着热门 Android 手机的平均点按与发声间延迟远低于大多数实时音频应用所需的延迟水平。
尽管整个 Android 生态系统中的音频延迟都已显著降低,但我们的工作还远远没有完成。专业的 Android 音频应用 需要 20 毫秒的往返延迟,而降至 10 毫秒仍是我们的长期目标。目前,一些较为冷门的设备仍然具有较高的音频延迟。但是,如果您曾因音频延迟问题暂缓开发 Android 应用,现在是时候重新考虑了。
要开始使用,欢迎您参阅 Oboe 入门指南 或观看 视频教程。
各种内部数据源