C# NAudio记录从未收到样本
我正在尝试从输入设备记录最简单的NAudio示例,但由于某些原因,我无法调用DataAvailable回调函数 在下面的例子中,“做某事”的断点永远不会被击中C# NAudio记录从未收到样本,c#,naudio,C#,Naudio,我正在尝试从输入设备记录最简单的NAudio示例,但由于某些原因,我无法调用DataAvailable回调函数 在下面的例子中,“做某事”的断点永远不会被击中 WaveIn waveIn = new WaveIn(); waveIn.DeviceNumber = 0; waveIn.DataAvailable += waveIn_DataAvailable; waveIn.RecordingStopped += new EventHandler(waveIn_RecordingStopped);
WaveIn waveIn = new WaveIn();
waveIn.DeviceNumber = 0;
waveIn.DataAvailable += waveIn_DataAvailable;
waveIn.RecordingStopped += new EventHandler(waveIn_RecordingStopped);
waveIn.WaveFormat = new WaveFormat(44100, 1);
waveIn.StartRecording();
private void waveIn_DataAvailable(object sender, WaveInEventArgs e)
{
Do Something
}
我已经检查、重新检查并重新检查了设置是否与NAudio VoiceRecorder测试应用程序使用的设置完全相同,该应用程序能够以完全相同的设置录制音频
唯一的区别是我的测试应用程序是一个控制台应用程序,而不是WPF应用程序。这会有什么不同吗?不过,您是否验证了您的设备是否有效 试试这样的东西
int waveInDevices = WaveIn.DeviceCount;
for (int waveInDevice = 0; waveInDevice < waveInDevices; waveInDevice++)
{
WaveInCapabilities deviceInfo = WaveIn.GetCapabilities(waveInDevice);
MessageBox.Show("Device " + waveInDevice + ": " + deviceInfo.ProductName +
", " + deviceInfo.Channels + " channels");
}
int-waveInDevices=WaveIn.DeviceCount;
对于(int-waveInDevice=0;waveInDevice
验证您是否有录音设备
Bernie是的,这是因为它是一个控制台应用程序,WaveIn类使用Windows消息作为回调。如果您能够下载并构建,则可以使用全新的
WaveInEvent
类(2012年3月6日添加),该类不依赖Windows消息循环
或者,如果您熟悉使用NuGet安装预发行版软件包,您可以安装最新(当前)的此类软件。是的,我已经这样做了,并且设备0肯定可用。