查看原文
其他

关于 Android 音频延迟的最新动态

Android 谷歌开发者 2021-08-05
作者 / Don Turner,Android 开发者关系工程师 

本文将介绍 Android 生态系统最近针对音频开发者的动向以及热门 Android 设备的音频延迟情况,并讨论 Android 在实时音频应用方面的适用性。



具体变化


在过去四年中,我们采取了一系列措施来改善音频延迟问题。



降低延迟


这些措施的实施以及设备制造商对音频延迟问题的重新关注,使设备生态系统得到显著改善。当前最热门 Android 手机的平均延迟已降至 40 毫秒以下,这已完全在实时应用所需的范围内。

设备热门程度来源: appbrain.com

  • appbrain.com
    https://www.appbrain.com/stats/top-android-phones



更高的一致性


从下方的数据可以看到,2017 年的最高值和最低值之间存在着显著差异 (222 毫秒)。

设备热门程度来源: appbrain.com

将其与 2021 年的数据进行比较。区间收窄至八分之一,仅为 28 毫秒,从而提供了更加一致的音频体验。考虑到热门名单中的 OEM 厂商已从 2017 年的一家变为多家,使得这一数字更加令人印象深刻。需要说明的是,名单中的许多设备都不是高端旗舰机型。
设备热门程度来源: appbrain.com


点按与发声间 (Tap-to-tone) 延迟


到目前为止,我们探讨的一直是往返音频延迟。往返延迟涉及到音频链中的三个组成部分: 音频输入、音频处理和音频输出。

许多实时音频应用都会通过屏幕点按事件生成音频,而不依赖于输入音频。此类应用对于点按与发声间延迟(即从点按屏幕到听到声音之间的用时)非常敏感。点按触摸屏引入的延迟在 10-35 毫秒之间,在新一代 Android 设备上通常为 20 毫秒。

  • 点按触摸屏引入的延迟在 10-35 毫秒之间
    https://github.com/google/walt/blob/master/docs/TapLatency.md


要在确定往返延迟的情况下估算点按与发声间延迟,您可以减去音频输入延迟 (通常为 5 毫秒),并加上触摸延迟 (通常为 20 毫秒)。也就是说,在往返延迟上加 15 毫秒。鉴于上述数字,这意味着热门 Android 手机的平均点按与发声间延迟远低于大多数实时音频应用所需的延迟水平。



展望未来


尽管整个 Android 生态系统中的音频延迟都已显著降低,但我们的工作还远远没有完成。专业的 Android 音频应用需要 20 毫秒的往返延迟,而降至 10 毫秒仍是我们的长期目标。目前,一些较为冷门的设备仍然具有较高的音频延迟。但是,如果您曾因音频延迟问题暂缓开发 Android 应用,现在是时候重新考虑了。


  • 专业的 Android 音频应用
    https://source.android.com/compatibility/11/android-11-cdd#5_10_professional_audio


要开始使用,欢迎您参阅 Oboe 入门指南或观看视频教程


  • Oboe 入门指南
    https://github.com/google/oboe/blob/master/docs/GettingStarted.md
  • 视频教程
    https://www.youtube.com/watch?v=csfHAbr5ilI&list=PLWz5rJ2EKKc_duWv9IPNvx9YBudNMmLSa


数据源和工具


  • OboeTester: 
    https://github.com/google/oboe/tree/master/apps/OboeTester/docs
  • WALT: 
    https://github.com/google/walt
  • appbrain.com:
    http://appbrain.com
  • superpowered.com/latency:
    http://superpowered.com/latency
  • gsmarena.com:
    http://gsmarena.com
  • juce.com/maq: 
    http://juce.com/maq
  • 各种内部数据源



推荐阅读






 点击屏末 | 阅读原文 | 即刻访问 Android 官方中文文档



    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存