Я использую NAudio за последние несколько дней смешивания двух звуковых файлов в этом формате:смешивания WaveStream с NAudio
SAMPLERATE: 8000 BitsPerSample: 8 Каналы: 1 Block Align Каналы: 1 Биты в Второй: 8000
как я нашел из https://naudio.codeplex.com/discussions/251475, сначала я должен преобразовать их в 32-битное кодирование ieeefloatingpoint, а затем добавить преобразованные потоки в WaveMixerStream32. после этого я должен преобразовать смешанные данные в поток 16 бит/образец с использованием Wave32To16Stream, преобразовать полученный поток в моно и, наконец, преобразовать моно 16 бит/образец в моно 8 бит/образец.
Я написал эти строки кода в соответствии с тем, что я объясняю:
WaveFileReader r1 = new WaveFileReader(...);
WaveFileReader r2 = new WaveFileReader(...);
WaveFormat OutputWaveFormat = WaveFormat.CreateCustomFormat(WaveFormatEncoding.Pcm, 8000, 1, 16000, 2, 16);
WaveFormat InputWaveFormat = WaveFormat.CreateALawFormat(8000, 1);
WaveFormatConversionStream ConversionStream1 = new WaveFormatConversionStream(OutputWaveFormat, r1);
WaveFormatConversionStream ConversionStream2 = new WaveFormatConversionStream(OutputWaveFormat, r2);
WaveChannel32 WaveChannel32_1 = new WaveChannel32(ConversionStream1);
WaveChannel32 WaveChannel32_2 = new WaveChannel32(ConversionStream2);
WaveMixerStream32 mixer32 = new WaveMixerStream32();
mixer32.AddInputStream(WaveChannel32_1);
mixer32.AddInputStream(WaveChannel32_2);//(*)
Wave32To16Stream stereo16 = new Wave32To16Stream(mixer32);
StereoToMonoProvider16 mono16 = new StereoToMonoProvider16(m_Wave32To16Stream);
после строки (*) У меня есть поток такой: 0 0 32 60 0 0 32 60 0 0 59 126 0 0 59 126 ... , но после применения Wave32To16Stream у меня есть последовательность только нулей в stereo16 и так в mono16 !! Что делать на этом шаге?