gpt4 book ai didi

c++ - 如何在 Linux 上用 C++ 播放 .wav 文件?

转载 作者:IT王子 更新时间:2023-10-29 00:31:36 25 4
gpt4 key购买 nike

我有一个关于在 C++ 中播放 .wav 文件的问题。我正在寻找一种在 Linux 和 Windows 上播放它的方法,我想在一个功能结束时将它分解,你知道这个的示例吗?

感谢任何回答:)!

我来自德国,请不要对我的语法或拼写感到生气:D。

最佳答案

有几种方法可以做到这一点。

执行此操作的最简单、最丑陋和最 hackish 的方法是直接写入位于 /dev/snd/ 中的声音设备。然而,这实际上取决于您的 Linux 发行版,一些现代发行版不再允许您这样做。一般来说,对/dev/ 设备的直接读/写正在逐渐消失。 Here is a question answering this .

很长一段时间以来,“官方”方法是使用使用 C 风格接口(interface)的 alsa 库。这通常非常棘手,充满陷阱和“解决方法”,具体取决于您的具体音频硬件。

我认为 alsa 正在逐渐被 jack 取代,我希望它更容易使用。我对此没有任何经验。

我知道的最后一种方法是使用 portaudio ,顾名思义,至少可以在 windows、linux 和 osx 之间移植。

所有这些库都将允许您控制音频硬件、初始化/设置/播放。 wav文件的简单之处在于内容是raw pcm,通常是那些库使用的格式。 wav 格式通常是这样的:

[wav header] [audio data until the end of the file]

如果您可以在开始播放时管理几毫秒的垃圾,您也可以“安全地”发送标题进行播放并避免解析它。但是,您必须了解 PCM 格式,并且应该带一些额外的阅读 Material 。

作为不直接涉及 C++ 的附加“技巧”,我强烈建议使用 Audacity。这是一个小程序,我看到它就像音频文件的记事本/vim。它体积小,加载速度快,允许您复制/粘贴音频片段并检测 pcm 格式。 (实际上,您只需更改 pcm 设置,直到音频“听起来”正确,但仍然有用)

关于c++ - 如何在 Linux 上用 C++ 播放 .wav 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38005588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com