c++ - 如何使用 LibSoX 混合两个 wav 文件

标签 c++ c windows visual-studio-2010 sox

我正在尝试在 Windows 上使用 LibSoX 混合两个 wav 文件。我可以通过使用以下命令从命令行使用 sox 来完成此操作:

sox -m f1.wav f2.wav out.wav

但是我想使用 C/C++ 函数并与 LibSoX 链接以编程方式执行此操作。我已经成功构建了 LibSoX,并尝试了不包含两个音频文件“混合”的示例程序。

有人做过这个吗?如果您可以提供代码片段或至少一些使用 LibSoX 调用执行此操作的指示,那就太好了

最佳答案

想分享我为上述问题所做的解决方案(解决方法)。基本上,混合不会作为导出的函数调用公开。混合当然可以通过命令行完成,所以可能有两种解决方案:1) 通过程序生成一个进程 (sox.exe) 和 2) 通过 libsox。我需要一个基于 libsox 的解决方案,因为要调用混合函数的函数无法生成进程(约束)。所以我将主要功能从 sox 移到了我导出的 libsox 中的一个新方法:)。所以现在我可以将相同的命令行开关传递给我的函数,并使用 libsox 完成工作!理想情况下,这将是一种“解决方法”,直到 Chris Bagwell 从 libsox 中公开混合(和其他缺失的)功能。

关于c++ - 如何使用 LibSoX 混合两个 wav 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14183120/

相关文章:

c++ - 数组内存位置

windows - 如何在 Windows 上对多个 repo 进行 git pull?

c++ - 成员因以下成员的初始化而损坏

c++ - 在多个 SDL_Renderer* 上使用 SDL_Texture*

c++ if语句导致无限循环

windows - 如何使用 PowerShell 将新文件从一个文件夹复制到另一个文件夹

c++ - 我可以使用 ReadProcessMemory 在 Windows 中读取进程的程序内存吗?

c++ - QTcpSocket 的 QThread 没有发出完成信号

从另一个程序控制 C 守护进程

c - C中的内存消耗