我试图从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应用程序时我也需要录制扬声器,如何录制双方对话?样本代码的任何线索或链接?