.......
.......
var mixer = new WaveMixerStream32();
mixer.AutoStop = true;
var messageOffset = background.TotalTime;
var messageOffsetted = new WaveOffsetStream(message,
TimeSpan.FromSeconds(10),
TimeSpan.Zero,message.TotalTime.Subtract(TimeSpan.FromSeconds(10)));
var background32 = new WaveChannel32(background);
background32.PadWithZeroes = false;
background32.Volume = 0.6f;
mixer.AddInputStream(background32);
var message32 = new WaveChannel32(messageOffsetted);
message32.PadWithZeroes = false;
message32.Volume = 0.3f;
mixer.AddInputStream(message32);
var ws = new Wave32To16Stream(mixer);
我们正在尝试混合多个 mp3 和波形文件以最终创建一个 MP3。
示例:5 个源文件(3 个 mp3,2 个波形文件)
我们将每个流的输入提供给 WaveMixerStream32,最后使用 Wave32To16Stream 进行转换
我们需要将此最终流转换为 MP3。为此,我们使用 LAME 并将流传递给 EncodeMixedStreamAsMp3,后者返回错误“文件格式无效”。
经过研究,我们发现混合波流中缺少 RIFF 标头。
如何将 RIFF 添加到基于多个源(MP3 和 WAVE)生成的混合波流中?