【问题标题】:How can I get latency info from Android's AudioTrack class?如何从 Android 的 AudioTrack 类中获取延迟信息?
【发布时间】:2010-04-08 03:58:32
【问题描述】:

我注意到,Android 中 AudioTrackAudioRecord API 的 C++ 类都有一个 latency() 方法,该方法没有通过 JNI 公开。据我所知,AudioRecord 中的 latency() 方法仍然没有考虑硬件延迟(他们对此有 TODO 注释),但 AudioTrack 中的 latency() 方法确实添加了硬件延迟。

我绝对需要从AudioTrack 获得这个延迟值。有什么可能的方法可以做到这一点吗?我不在乎需要什么样的疯狂破解,只要它不需要 root 手机(生成的代码仍然必须打包为市场上的应用程序)。

【问题讨论】:

    标签: android audio


    【解决方案1】:

    AudioTrack 上有一个名为 getLatency() 的方法,您可以通过反射调用该方法。例如,查看 Exoplayer 或 https://developer.amazon.com/docs/fire-tv/audio-video-synchronization.html#section1-2

    【讨论】:

      【解决方案2】:

      抱歉,您需要真正的缓冲区 + 硬件延迟吗? 不幸的是,除非您使用谷歌不推荐的一些技巧,否则您似乎无法获得此值,这些技巧可能会在新的 Android 版本中变成折痕。

      【讨论】:

      • 你还指的是什么黑客?
      猜你喜欢
      • 2017-03-12
      • 1970-01-01
      • 2011-07-19
      • 1970-01-01
      • 2021-10-11
      • 1970-01-01
      • 2019-04-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多