2012-12-29 57 views
1

我正在嘗試錄製3-4個音頻流並將它們寫入單獨的wav文件。我正在使用NAudio的asioOut來捕捉音頻。起初,我只是寫了一個3或4頻道的WAV文件。所以我在這裏搜索問題,並認爲我創建了一個answer,但我仍然無法弄清楚。現在我可以編寫單獨的wav文件,但它們在每個文件中都有多個通道。從NAudio寫入多個wav文件asioOut

channel_1.wav -------->具有信道1和2

channel_2.wav -------->具有信道1和3

channel_3.wav - ------->有渠道2和3

我認爲有一個問題,當我試圖解析GetAsInterleavedSamples()

這是我asioOut_AudioAvailable()

void asioOut_AudioAvailable(object sender, AsioAudioAvailableEventArgs e) 
    {  

     float[] samples = new float[2 * 44100 * GetUserSpecifiedChannelCount()]; 

     samples = e.GetAsInterleavedSamples(); 

     int offset = 0; 
     while (offset < samples.Length) 
     { 
      for (int n = 0; n < this.writers.Length; n++) 
      { 
       this.writers[n].WriteSamples(samples, offset, 2); 
       offset += 2; 
      } 
     } 

    } 

我在這所以我只是學習,一去新的,任何幫助,將不勝感激。

謝謝。

回答

1

如果我正確理解你,你只想寫一個樣本給每個作者,所以WriteSamples的第三個參數應該是1,並且偏移量應該增加1.你可能複製了+ = 2例如,處理字節數組中的16位音頻。