.......
.......
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 ファイルと wave ファイルを組み合わせて、最終的に 1 つの MP3 を作成しようとしています。
例: 5 つのソース ファイル (3 つの mp3 ファイル、2 つの wave ファイル)
各ストリームの入力を WaveMixerStream32 に渡し、最終的に Wave32To16Stream を使用して変換します
この最終ストリームを MP3 に変換する必要があります。このために、LAME を使用し、ストリームを EncodeMixedStreamAsMp3 に渡します。これは、「無効なファイル形式」というエラーを返します。
調査の結果、混合ウェーブ ストリームで RIFF ヘッダーが欠落していることがわかりました。
複数のソース (MP3 と WAVE) に基づいて生成された混合ウェーブ ストリームに RIFF を追加する方法は?