使用 CoreAudio 以编程方式在 Swift 中创建聚合音频设备
Posted
技术标签:
【中文标题】使用 CoreAudio 以编程方式在 Swift 中创建聚合音频设备【英文标题】:Programmatically Create Aggregate Audio Devices In Swift Using CoreAudio 【发布时间】:2016-08-07 02:28:04 【问题描述】:我正在研究在 OS X 或 ios 上创建多输出设备,I found out that CoreAudio would allow you to create aggregate devices. 我的第一个问题是,iOS 是否允许您这样做。我知道这在 OS X 上肯定是可能的,但我听说 iOS 不允许这样做。我非常感谢您将如何检测多个音频输出设备并创建一个聚合设备的示例,所有这些都使用 swift。我已经检查了here,但它并没有完全回答我的问题,而且它的答案是基于 Objective-C。非常感谢您的帮助,并在此先感谢您!
【问题讨论】:
【参考方案1】:聚合音频设备 API 在 iOS 上不公开,因此您无法自己创建这些设备。
然而iOS 将根据最近连接的音频硬件和一些其他规则为您创建聚合设备*如果您激活了@ 987654322@ 使用.multiRoute
类别。
当您因添加或删除音频接口而收到路由更改通知时,您可以创建具有正确通道数的远程 IO 音频单元。我没有尝试将多路音频与AVAudioEngine
一起使用,也没有尝试仅使用可用通道的子集。
* 它们可能是聚合设备,尽管您从未看到它们或直接与它们交互。
【讨论】:
但不幸的是,multiRoute 类别似乎不支持蓝牙音频设备? developer.apple.com/documentation/avfoundation/avaudiosession/…(说真的,加油苹果) 哦,真糟糕,它们在 osx 聚合音频设备上运行良好(除了整个聚合会导致蓝牙延迟)以上是关于使用 CoreAudio 以编程方式在 Swift 中创建聚合音频设备的主要内容,如果未能解决你的问题,请参考以下文章