qt中使用libsndfile实时播放声音c++
Posted
技术标签:
【中文标题】qt中使用libsndfile实时播放声音c++【英文标题】:Using libsndfile to play sound real time c++ in qt 【发布时间】:2012-02-02 19:57:38 【问题描述】:我正在使用 libsndfile 读取和操作声音文件。 我正在徘徊什么是实时播放这些声音的最简单方法 在 Qt 中。
我曾尝试查看 QtAudioOutput,但必须使用 QtAudioFormat,即 配置起来相当麻烦。
我想要的只是 1) 使用 libsndfile 读取数据 2) 操作数据 3) 将缓冲区发送到音频输出库。
【问题讨论】:
您希望它在哪些平台上运行? 我希望它可以在 windows、mac 和 linux 上运行。 【参考方案1】:尝试使用 sndfile-play 使用 libsndfile 播放音频文件,或者基于 libsndfile 的库,例如 ALURE
http://kcat.strangesoft.net/alure.html
您可以使用 libsndfile 手动加载音频文件并使用 OpenAL 播放文件。这基本上就是 ALURE 正在做的事情。
【讨论】:
OpenAl 对于我正在尝试做的事情似乎有点矫枉过正。再加上在不同平台上安装似乎并不容易。 好吧,老实说,我不认为这个问题是微不足道的。 OpenAL 是一个跨平台 API,旨在执行此操作。作为一个广为人知的标准,有很多教程可以帮助您入门。我很想知道您最终选择了哪种解决方案,请在完成后更新此问题。【参考方案2】:您可以使用 Phonon 输出音频。这是来自Phonon 模块的文档片段
源的类型由媒体源本身设置,并且依赖于用于创建它的构造函数。请注意,可以通过实现 QIODevice 提供来自任何来源的数据。
如果你想以 Qt 方式实现,基本上你必须实现自己的 QIODevice
【讨论】:
以上是关于qt中使用libsndfile实时播放声音c++的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 libsndfile 打开加载到内存中的声音文件?