OS X 以编程方式设置默认输出设备

735*_*sla 8 c macos objective-c core-audio osx-yosemite

我一直在尝试更改我的计算机向哪个音频设备发送声音。我的最终目标是创建一个程序,即使耳机插入耳机插孔,也可以将我的笔记本电脑输出到其内置扬声器。

我偶然发现了这个项目,但它使用的方法(特别是AudioHardwareSetProperty)已被弃用。它也不起作用(它会说它改变了输出设备,但声音仍然会传到我的耳机)。

CoreAudio 的文档似乎很差,我在网上找不到任何没有使用该功能的代码。如果它可以满足我的要求,我会使用已弃用的功能,但事实并非如此。我不确定它是坏了还是没有按照我想的那样做,但这最终真的无关紧要。

我试图查看评论,AudioHardwareSetProperty但我在讨论部分发现的只是:

请注意,在 HAL 调用侦听器之前,不应认为属性值已更改,因为许多属性值是异步更改的。另请注意,AudioObjectGetPropertyData() 函数提供了相同的功能。

这显然不是真的,因为我知道AudioObjectGetPropertyData用于获取有关一个特定音频设备的信息的事实。

我正在尝试使用 CoreAudio 做的事情可能吗?