0
我一直在使用n音訊過去數天混合兩種波形文件用這種格式混合的WaveStream第二:8000與n音訊
我發現從https://naudio.codeplex.com/discussions/251475,首先我應該將它們轉換成32位ieeefloatingpoint編碼,然後將轉換後的流添加到WaveMixerStream32。之後,我應該使用Wave32To16Stream將混合數據轉換爲16位/採樣流,將獲得的流轉換爲單聲道並最終將單聲道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後,我有一個在立體聲16只有一個序列,因此在mono16! 這一步應該怎麼做?