准确的跨平台声音处理

Accurate cross-platform sound manipulation

本文关键字:声音 处理 跨平台      更新时间:2023-10-16

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

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

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

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

如果您浏览 Audacity 的源代码,您可能会找到一些有用的建议。

嗯,

总有杰克。它非常易于使用,并具有良好的文档,此外,它还旨在作为低延迟的跨平台I/O,并具有集成工具来处理网络声音处理。相当不错的软件,听起来像是你想做的事情。