objective-c - 如何使用 RemoteIO 核心音频最好地构建程序

标签 objective-c ios xcode core-audio

我正在编写一个有两个 View Controller 的程序。一个 View Controller 配置通过远程IO音频单元播放的声音。另一个 View Controller 从麦克风接收音频,处理该音频并显示与从麦克风接收到的声音相关的信息。两个 View Controller 都需要使用相同的音频图。我使用 Apple 的 AurioTouch2 示例来指导我的代码,但该程序将大部分代码放在应用程序委托(delegate)(和帮助程序类)中,包括设置音频图以及传入和传出音频的回调。这似乎在应用程序委托(delegate)中放置了不必要的代码。构建我的应用程序的最佳实践是什么?音频单元应该安装在哪里?将音频发送到音频单元的回调应该在哪里?接收到的音频的回调应该在哪里?

最佳答案

由于 iOS 应用程序只有一个 RemoteIO 音频单元可用,因此单例 Controller 对象可能是集中定位与该音频单元相关的所有代码的好地方。应用程序委托(delegate)加上可能的辅助对象或类的组合可以充当小型简单应用程序中此单例 Controller 的代理。但在较大的应用程序中,最好使用单独的音频 Controller 类。某种模型类可能适合封装任何音频状态数据(波形数据等)

对音频 Controller 对象或数据模型对象的引用可以传递给需要控制或访问音频的任何其他 View Controller 。这将适合组合光(UIView)和声音(音频单元)的 MVC 模式。

请注意,音频单元 API 是 C API,因此也可以使用全局可见的 C 子例程和状态(例如,某些不与任何类关联的 .c 文件)。

关于objective-c - 如何使用 RemoteIO 核心音频最好地构建程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13993084/

相关文章:

ios - 如何创建一个 NSManagedObjectContext 作为另一个 NSManagedObjectContext 的子集?

swift - 如何解决 NSAppleMusicUsageDescription 错误

xcode - 使用外部 Xcode Clang 静态分析器二进制文件,并进行额外检查

iphone - 如何在 iPhone 的 UIImageView 上从远程服务器加载图像?

ios - 如何在该 View 内为图像设置动画时捕获 UIView 快照

ios - Objective-C > TableView 和 ViewController 之间的 Segue

iphone - 在 iPhone 开发中单独设置宽度和高度

objective-c - b2shape 椭圆?

ios 将通知推送到特定的 View Controller

objective-c - 使用 Instruments 测试 iOS 应用程序开发的最佳实践