Mac OS X 声音输出

Posted

技术标签:

【中文标题】Mac OS X 声音输出【英文标题】:Mac OS X sound output 【发布时间】:2012-07-05 08:05:53 【问题描述】:

有没有关于如何在 Mac OS X 上输出原始声音缓冲区的示例? 类似pa_simple_write() 的pulseaudio 或waveOutWrite() 来自WINAPI。

【问题讨论】:

【参考方案1】:

您需要创建一个AudioQueue。

接下来你需要allocate a buffer。分配后,然后用数据和enqueue it 填充它。最后你打电话给AudioQueueStart。然后,您可以立即调用 AudioQueueStop,并将 false 作为最后一个参数。

不过,如果您需要同时播放多个声音,上述方法就不能很好地工作。如果您希望这样做,AFAIK,您将需要一个更复杂的设置,将音频混合到缓冲区中。不过这很快就会变得复杂......

【讨论】:

【参考方案2】:

我遇到的最简单的方法是使用libao。方便的是,它也是跨平台的。

【讨论】:

好消息,但我已经实现了 windows 和 linux,没有 SDL 或 libao 等库,只有 mac os 剩下 CoreAudio 或类似的东西...... rtaudio 和 portaudio 是类似的跨平台替代品。可能比直接使用 CoreAudio 更容易(并且 PortAudi 附带了很好的示例代码),但 CoreAudio 还不错。

以上是关于Mac OS X 声音输出的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式录制声音发送到内置输出,Mac OS X

如何在 Mac OS X 上使用 C++ 播放声音?

OpenAL 是不是支持 Mac OS X 上的 5.1 输出?

防止事件监视器 OS X 中出现错误“放克”声音

mac 声音内录方法

如何在 Mac OS X 中检测是不是连接了蓝牙音频设备?