准确的跨平台声音操控

时间:2011-05-11 22:35:32

标签: c++ cross-platform audio wav

如何在C ++中播放和暂停波形文件,并以毫秒为单位获取播放的长度和持续时间。它应该最好是跨平台但不是Qt,因为QSound是简单的,声子需要DirectX并且不适用于mingw。感谢

4 个答案:

答案 0 :(得分:2)

我会使用像libAO这样的低级库。您可以控制播放的次数,因此要“暂停”,您只需停止调用ao_play()并计算您发送的样本数量。

简单的音频播放并不是一项复杂的任务,需要复杂的API。

答案 1 :(得分:1)

看看http://www.portaudio.com/。此外,SFML还有一个音频模块:http://www.sfml-dev.org/index.php。此外,还存在商业(但可以免费使用,取决于项目)的替代方案,如http://www.fmod.org/BASS(Win,Mac)。

答案 2 :(得分:0)

如果您查看Audacity的源代码,可能会发现一些有用的建议。

答案 3 :(得分:0)

总是jack。它非常易于使用,并且具有良好的文档,以及用作处理网络声音处理的集成工具的低延迟跨平台I / O.相当不错的软件,它听起来像你正在尝试做的事情。