使用本地系统调用在C ++中播放声音?

所以在Windows中,您可以使用PlaySound函数在C ++应用程序中播放MP3文件。 Mac OS X / Linux中有哪些类似的function可用? 如果你可以链接到一些示例Hello-Worldtypes的程序来演示这个,我也会很感激。

Solutions Collecting From Web of "使用本地系统调用在C ++中播放声音?"

你可以open("/dev/dsp")并写入。 我相信这就像你可以得到的“本地系统调用”一样。

关于音频:Linux!= Mac,所以我会分别回答。

MacOS使用低级音频的核心音频框架。 在此基础上,有几个更高层次的API。 如果你只是想播放一个声音文件, AV基础框架是最有可能的。 在这里你可以找到一个例子来构建一个简单的iOS应用程序,它可以轻松移植到MacOS。

对于Linux来说,整个情况相当微妙。 存在着许多不同的框架和图书馆,因为其中有一些是模仿其他的,所以它很不清楚哪一个是低的,哪一个是高的。 基本上ALSA和OSS用于低级音频。 他们都是废话。 Jack的目标是为专业音频提供一个框架,但它不是很便携(至少如果你对嵌入式设备感兴趣的话)。 目前大多数的Linux操作系统都是使用PulseAudio作为音频服务器,它也有一个简单的API来播放单一的声音和一个非常困难的低层次的API。 然后是gstreamer库,这是相当便携,有一个中途下降的API,是专门为播放音频和视频文件和流,所以可能的方式去linux上。

我个人推荐使用PortAudio ,它是一个库,提供 – 作为名称状态 – 一个音频框架,可以在多个操作系统和音频框架之间移植。 PortAudio也很好的设计,并有一个简单而灵活的API。

那么,我不确定当前的桌面是否有一些更高级的播放音频文件的服务/库,但是如果你真的想要做一些低级的OS音频输出的话,那么就从这里开始。 也许这对你的需求来说太低级了。