我创建了一个 iOS 5/iOS 6 应用程序,该应用程序的显示屏可响应用户演奏的音高变化。它使用示例 SpeakHere 代码中的记录功能,但实际上并不保存文件,因为它旨在实时响应。
我现在想扩展这个应用程序以同时响应音高本身和相同音高的持续时间(例如,当相同音高稳定保持最短时间时改变颜色)。我一直在阅读 NSTimer 和 NSDate 函数,它们看起来很简单,还有 AudioTimeStamp 函数,它们显然是基于 C 的,我觉得很困惑。根据其他帖子,似乎 NSTimer 和 NSDate 检查可能会导致显示器对实际音乐表演的实时响应滞后。dispatchAfter 怎么样?我可以期望该块在预定时间执行吗?
我的问题是,什么方法最有可能产生允许我测量 AudioQueue 中特定音高的持续时间并实时连续更新我的显示的预期结果?我需要保存到文件中才能正常工作吗?
我是自学成才的,并且只编程了几个月,所以无论如何我都必须学习很多对我来说是新的 API/C 语言特性。我希望有人能给我指出一个富有成效的方向。谢谢!