如何在c#中录制对话

时间:2016-02-26 11:58:46

标签: c# audio naudio

我有一个必须录制对话的应用。一个通道中的传出声音和另一个通道上的传入声音。最后将录音保存为1个立体声文件(mp3文件)。

我正在经历handling-multi-channel-audio-in-naudio。但是还不能为我工作。这是我尝试过的,下面的代码在wav文件中保存录音。它不处理多通道功能。我无法在我的代码中加入多渠道功能:<​​/ p>

private void Save_Wav(object sender, EventArgs e)
{
    if (sourceList.SelectedItems.Count == 0) return;

    SaveFileDialog save = new SaveFileDialog();
    save.Filter = "Wave File (*.wav)|*.wav;";
    if (save.ShowDialog() != System.Windows.Forms.DialogResult.OK) return;

    int deviceNumber = sourceList.SelectedItems[0].Index;

    sourceStream = new NAudio.Wave.WaveIn();
    sourceStream.DeviceNumber = deviceNumber;
    sourceStream.WaveFormat = new NAudio.Wave.WaveFormat(44100, NAudio.Wave.WaveIn.GetCapabilities(deviceNumber).Channels);

    sourceStream.DataAvailable += new EventHandler<NAudio.Wave.WaveInEventArgs>(sourceStream_DataAvailable);
    waveWriter = new NAudio.Wave.WaveFileWriter(save.FileName, sourceStream.WaveFormat);

    sourceStream.StartRecording();
}

private void sourceStream_DataAvailable(object sender, NAudio.Wave.WaveInEventArgs e)
{
    if (waveWriter == null) return;

    waveWriter.WriteData(e.Buffer, 0, e.BytesRecorded);
    waveWriter.Flush();
}

任何帮助都将不胜感激。

0 个答案:

没有答案