如何更改 Objective-C 中的音频输出设备?

Posted

技术标签:

【中文标题】如何更改 Objective-C 中的音频输出设备?【英文标题】:How can I change the audio output device in Objective-C? 【发布时间】:2010-01-16 02:38:10 【问题描述】:

我正在构建一个简单的 Cocoa 应用程序,我想将音频输出定向到特定设备,而不是系统选择的设备。我知道一些应用程序,比如 Skype,可以让你选择将输出发送到哪里。他们是怎么做到的?

我尝试了 MTCoreAudio 框架,但我什至无法编译包含它的应用程序(或他们的 AudioMonitor 演示),并且错误没有帮助 (_objc_fatal)。有没有完整的例子可以借鉴?到目前为止,我的搜索还没有出现任何结果。

谢谢!

【问题讨论】:

【参考方案1】:

Mac Dev Center Sample Code library 上的CAPlayThrough example 显示如何列出所有可用的输入和输出设备,并从菜单中选择默认设备。

【讨论】:

【参考方案2】:

你看过http://developer.apple.com上的示例代码吗?

看看这些项目http://developer.apple.com/mac/library/navigation/index.html?section=Resource+Types&topic=Sample+Code

即 DefaultAudioUnit 项目。

我应该说使用 Core Audio 比使用 Cocoa 更具挑战性。大多数 API 都是基于 C 的(我觉得这更难)。您还应该阅读 Core Audio 编程指南,以了解音频系统是如何组合在一起的。

【讨论】:

我认为您的意思是 DefaultOutputUnit 示例。

以上是关于如何更改 Objective-C 中的音频输出设备?的主要内容,如果未能解决你的问题,请参考以下文章

WebView 更改音频输出设备

如何在 Windows 7 中更改音频输出设备的默认共享模式采样率?

avplayer 不播放通过 IOS Objective-C 中的设备摄像头捕获的视频中的音频

在 OSX 上更改 AVAudioPlayer 的输出设备

音频队列 |在 audioQueue 运行时更改音频设备

更改 Windows Media Player 的目标扬声器