gpt4 book ai didi

c# - 混合从两个源文件中读取的音频

转载 作者:行者123 更新时间:2023-12-02 23:41:55 26 4
gpt4 key购买 nike

我想将从两个文件(1 个 mp3 和 1 个 wav(录制的语音)文件)读取的音频混合到一个文件(mp3 或 wav)中。

我已经阅读了许多相关的答案,但没有帮助我得到我想要的东西。

就像下面的代码一样,会生成一个 Steam 作为输出。我不知道如何正确调用此函数以及如何在最后将输出流作为 mp3/wav 文件获取。

    public static void Combine(string[] inputFiles, Stream output)
{
foreach (string file in inputFiles)
{
Mp3FileReader reader = new Mp3FileReader(file);
if ((output.Position == 0) && (reader.Id3v2Tag != null))
{
output.Write(reader.Id3v2Tag.RawData, 0, reader.Id3v2Tag.RawData.Length);
}
Mp3Frame frame;
while ((frame = reader.ReadNextFrame()) != null)
{
output.Write(frame.RawData, 0, frame.RawData.Length);
}
}
}

最佳答案

看起来您从 http://mark-dot-net.blogspot.com/2010/11/merging-mp3-files-with-naudio-in-c-and.html 获取了代码.查看 http://markheath.net/post/mixing-and-looping-with-naudio也是。这谈到了循环和混合。由于您没有循环播放,因此不需要该部分。

请注意,此处的示例将音频发送到扬声器。但是,您始终可以将该输出替换为(例如)WaveFileWriter .

还要注意 MixingWaveProvider32要求所有输入都在同一个 WaveFormat 中.如果不是这种情况,那么您将需要使用重采样器。幸运的是,有 http://mark-dot-net.blogspot.com/2014/05/how-to-resample-audio-with-naudio.html也可以帮助你。

关于c# - 混合从两个源文件中读取的音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37039376/

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