【问题标题】:Getting CPU clock time AVAudioEngine获取 CPU 时钟时间 AVAudioEngine
【发布时间】:2015-08-06 12:52:34
【问题描述】:

如何在正在运行的 AVAudioEngine 上获取时钟时间或采样准确时间?

【问题讨论】:

    标签: swift avaudioengine


    【解决方案1】:

    来自文档:

    AVAudioEngine 类定义了一组连接的AVAudioNode 对象,称为音频节点。您使用音频节点来生成音频信号、处理它们并执行音频输入和输出。

    对于时钟和/或采样时间,您需要在有效的 AVAudioNode 实例上调用 lastRenderTime

    lastRenderTime 方法返回一个AVAudioTime 对象。使用AVAudioTime,您可以检索时间:

    1. sampleTime 将返回采样时间为sampleTimeValid 返回YES
    2. 如果hostTimeValid 返回`YES,hostTime 将返回主机时间。

    【讨论】:

    • 非常感谢。我想知道是否有类似 TAAE 的回调。不过这行得通,干杯!
    • 我不确定您说的是哪个 TAAE 回调,但 AVAudioNode 提供 installTapOnBus
    • 对,可以在AVAudioNode 上调用installTapOnBus 并在回调中查询其lastRenderTime
    • 这种设计似乎有些不对劲。如果函数,比如说一个音序器,需要精确的采样时间,回调设计允许它发生。 AVAudioEngine 设计将需要其他东西来触发 lastRenderTime 检查,例如计时器。该计时器不会精确到样本级别,因此会在 TAAE 上创建回调结构。
    猜你喜欢
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2014-06-11
    相关资源
    最近更新 更多