我有 2 个 wav 文件,我想将它们与两个音轨连接成一个文件。
是否有任何用于该任务的 api 或 .NET 中的一些内置命令,我可以以某种天才的方式使用这些命令来使该任务成为可能?
非常感谢您的帮助。:)
如果我没记错的话,您可以将第二个文件中的字节附加到第一个文件的末尾。如果有任何标题数据,您需要排除它(请参阅此处)
请注意,您可能会听到两个剪辑之间的咔嗒声或爆裂声,因为不会有混合。您可能可以通过淡化(逐渐将最后几毫秒的值降低到中心值)来解决这个问题。
直接的方法是解释 wav 文件头,提取样本并将两个文件中的样本交织到一个新的样本流中,然后将其写入新的 wav 文件。您还可以逐个样本添加两个源 wav 文件的样本值,以将两个文件“混合”到一个轨道中。wav 文件格式并没有那么复杂,所以编写这段代码应该不会太难。此外,还有很多开源项目包含读写 wav 文件的代码。请注意,由于两个源 wav 文件具有不同的采样率,事情会变得有些棘手。检查此以获取 wav 格式的描述。
是的,您可以将第二个 wav 的数据(不包括其标题)附加为 sais Jon B,但您还必须修改第一个文件的标题以指示新长度,否则某些音频播放器将在第一个结束时停止部分。
对于动态连接,由于您不知道开头总 wav 的大小,您可以在第一个文件的标题上放置一个假长度,例如放置 10 小时的持续时间。
然后音频播放器应该等到您附加每个数据。它至少适用于ffmpeg