gpt4 book ai didi

c#: 将 mp3 文件覆盖到另一个文件

转载 作者:行者123 更新时间:2023-12-04 22:56:23 25 4
gpt4 key购买 nike

我仅使用以下代码将 3 个 mp3 文件合并为一个 mp3 文件

using (var fs = File.OpenWrite(Path.Combine(txtOutputFile.Text, "new.mp3")))
{
var buffer = File.ReadAllBytes(Path.Combine(txtIntroLoc.Text, fileName1));
fs.Write(buffer, 0, buffer.Length);
buffer = File.ReadAllBytes(Path.Combine(txtOutroloc.Text, fileName2));
fs.Write(buffer, 0, buffer.Length);
buffer = File.ReadAllBytes(Path.Combine(txtFileThree.Text, fileName3));
fs.Write(buffer, 0, buffer.Length);
fs.Flush();
}

我想要的是覆盖另一个 mp3 文件,它将在这个新创建的 mp3 文件的背景中播放。我知道这是可能的,但没有找到正确的方法来实现这一目标。任何帮助都会很棒。
谢谢

最佳答案

关于“叠加”的问题:

如果不将原始文件解码为 PCM,在叠加层中混合,然后将整个内容重新编码为 MP3,就无法做到这一点。

在您现有的代码上:

您可以像这样连接 MP3 文件。通常虽然我会建议放弃 ID3 标签,只制作一个包含每个文件的 MP3 帧的文件。如果您使用的是 NAudio,那么您可以使用 ReadNextFrame() Mp3FileReader 上的方法来获取每个 MP3 帧并写入其 RawBytes出文件。

为获得最佳效果,您希望所有 MP3 文件使用相同的采样率和 channel 数。此外,如果这些是 VBR,您将使 XING or VBRI headers 中的信息无效。 ,所以最好也放弃这些。

关于c#: 将 mp3 文件覆盖到另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18827766/

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