在 C++ 中连接 .wav 文件
Concatenate .wav files in C++
我怎样才能使用函数、库,无论我需要什么,来连接两个 .wav 文件?输入应该是绝对路径,输出是在某处创建和放置(不仅仅是播放)的音频文件,在哪里并不重要。
我正在 XCode 6.
中编写 Mac 命令行应用程序
.wav
文件格式是一种非常简单的格式,由定义音频文件属性的固定 header 组成;即 endian-ness、通道数和采样率。它的文档在 intertubes 上被广泛定义。
我想不起来是否有任何公共库提供了一种方便的方法来做到这一点(值得仔细研究 libsndfile's API documentation,寻找符合要求的东西)。
无论如何,读取两个 WAV 文件的 headers,检查它们的格式,然后创建输出文件应该不会太难。如果两个 WAV 文件具有相同的 endian-ness、通道数和采样率,则该过程很简单,否则您将必须 resample/remix 至少一个文件。
有一个非常简单、轻量级且成熟的开源CAPI库for reading-writing several common audio file formats。我有一段时间没用它了,如果我没记错的话,它有打开声音文件进行写入、寻找结尾、从另一个文件附加数据和更新 header 的例程。希望对您有所帮助。
我怎样才能使用函数、库,无论我需要什么,来连接两个 .wav 文件?输入应该是绝对路径,输出是在某处创建和放置(不仅仅是播放)的音频文件,在哪里并不重要。
我正在 XCode 6.
中编写 Mac 命令行应用程序.wav
文件格式是一种非常简单的格式,由定义音频文件属性的固定 header 组成;即 endian-ness、通道数和采样率。它的文档在 intertubes 上被广泛定义。
我想不起来是否有任何公共库提供了一种方便的方法来做到这一点(值得仔细研究 libsndfile's API documentation,寻找符合要求的东西)。
无论如何,读取两个 WAV 文件的 headers,检查它们的格式,然后创建输出文件应该不会太难。如果两个 WAV 文件具有相同的 endian-ness、通道数和采样率,则该过程很简单,否则您将必须 resample/remix 至少一个文件。
有一个非常简单、轻量级且成熟的开源CAPI库for reading-writing several common audio file formats。我有一段时间没用它了,如果我没记错的话,它有打开声音文件进行写入、寻找结尾、从另一个文件附加数据和更新 header 的例程。希望对您有所帮助。