录制音频时出现异常

时间:2014-03-31 07:58:41

标签: c# xna naudio

我试图从NAudio,XNA录制麦克风,但是当我打开&在VLC中播放任何视频或开始使用Skype进行呼叫,

  

录制应用终止于

     

WinRecord.exe中0x6E0DCF9D(clr.dll)的未处理异常:Stack   cookie检测代码检测到基于堆栈的缓冲区溢出。

     

OR

     

尝试读取或写入受保护的内存。这通常是一个   表明其他内存已损坏。

我实际上是在尝试录制VOIP会话。如果我不启动VLC或Skype

,应用程序运行正常

这是代码(NAudio):

    WaveIn mic = null;
    WaveFileWriter waveFile = null;

    public Record(string savefilepath)
    {
        mic = new WaveIn();
        mic.WaveFormat = new WaveFormat(44100, 1);
        mic.DataAvailable += mic_DataAvailable;
        mic.RecordingStopped += mic_RecordingStopped;
        waveFile = new WaveFileWriter(savefilepath, mic.WaveFormat);
    }


    public void start()
    {
        mic.StartRecording();
    }

    public void stop()
    {
        mic.StopRecording();
    }

    void mic_DataAvailable(object sender, WaveInEventArgs e)
    {
        if (waveFile != null)
        {
            waveFile.Write(e.Buffer, 0, e.BytesRecorded);
            waveFile.Flush();
        }
    }

    void mic_RecordingStopped(object sender, StoppedEventArgs e)
    {
        if (mic != null)
        {
            mic.Dispose();
            mic = null;
        }

        if (waveFile != null)
        {
            waveFile.Close();
            waveFile.Dispose();
            waveFile = null;
        }
    }

XNA也是如此。我在Windows 8 64bit&为.net 4编译的代码,笔记本电脑有内置麦克风。

另一个问题:在录制VOIP应用程序时我也需要录制扬声器,如何录制双方对话?样本代码的任何线索或链接?

0 个答案:

没有答案