gpt4 book ai didi

ios - audioQueue 中的定时事件

转载 作者:行者123 更新时间:2023-12-03 02:20:39 25 4
gpt4 key购买 nike

我创建了一个 iOS 5/iOS 6 应用程序,该应用程序的显示屏可响应用户演奏的音高变化。它使用示例 SpeakHere 代码中的记录功能,但实际上并不保存文件,因为它旨在实时响应。

我现在想扩展这个应用程序以同时响应音高本身和相同音高的持续时间(例如,当相同音高稳定保持最短时间时改变颜色)。我一直在阅读 NSTimer 和 NSDate 函数,它们看起来很简单,还有 AudioTimeStamp 函数,它们显然是基于 C 的,我觉得很困惑。根据其他帖子,似乎 NSTimer 和 NSDate 检查可能会导致显示器对实际音乐表演的实时响应滞后。 dispatchAfter 怎么样?我可以期望该 block 在预定时间执行吗?

我的问题是,什么方法最有可能产生允许我测量 AudioQueue 中特定音高的持续时间并实时连续更新我的显示的预期结果?我需要保存到文件中才能正常工作吗?

我是自学成才,只编程了几个月,所以无论做什么,我都必须学习很多对我来说新的 API/C 语言特性。我希望有人能给我指出一个富有成效的方向。谢谢!

最佳答案

你肯定会在这里进入非常先进的东西。这里有一些想法:

  • 您的音频处理似乎是最密集的操作。因为这个处理需要是连续的,你可能不得不在另一个线程中进行这个处理。通过处理,我的意思是检查音频以确定音高。
  • 一旦你确定了音高,你应该存储它开始的时间。
  • 然后,在主线程中,设置一个连续重复的 NSTimer,并在 NSTimer 的 fire 方法中,从当前日期中减去音高的开始日期以获得耗时,作为 NSTimeInterval。
  • 将 NSTimeInterval 发送到您的显示逻辑,以便您可以更新屏幕上的颜色。

  • 需要检查的一些事项:

    Beginner's tutorial on multi-threading and Grand Central Dispatch on iOS
    NS定时器

    Using NSTimers

    希望对您有所帮助!

    关于ios - audioQueue 中的定时事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13215767/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com