问题描述
首先我初始化它
WaveIn waveInStream = new WaveIn();
waveInStream.WaveFormat = new WaveFormat(44100,2);
waveInStream.BufferMilliseconds = 36000000;
waveInStream.DeviceNumber = 0;
waveInStream.DataAvailable += WaveInStream_DataAvailable;
waveInStream.RecordingStopped += WaveInStream_RecordingStopped;
WaveFileWriter wave_writer = new WaveFileWriter(full_file_path,waveInStream.WaveFormat);
关于 waveInStream.StartRecording();我收到一个异常 - Baddeviceid 调用 waveInopen。 我看到 WaveIn.DeviceCount = 0; 但是我不需要像麦克风这样的实际输入设备,我想记录我生成的声音并传递给声卡输出。 我应该如何设置 waveInStream 来做到这一点?
解决方法
我确实喜欢我的建议
MMDevice mm_dev;
private void MainForm_Load(object sender,EventArgs e)
{
if (OutputDevice.DeviceCount > 0)
{
outDevice = new OutputDevice(0);
MMDeviceEnumerator enumerator = new MMDeviceEnumerator();
//here I see my sound card
mm_dev = enumerator.EnumerateAudioEndPoints(DataFlow.All,DeviceState.Active)[0];
loopback_capture = new WasapiLoopbackCapture(mm_dev);
loopback_capture.DataAvailable += Loopback_capture_DataAvailable;
loopback_capture.RecordingStopped += Loopback_capture_RecordingStopped;
wave_writer = new WaveFileWriter(full_file_path,waveInStream.WaveFormat);
}
}
private void Loopback_capture_DataAvailable(object sender,WaveInEventArgs e)
{
wave_writer.Write(e.Buffer,e.BytesRecorded);
}
但是在 loopback_capture.StartRecording(); 我得到 -
值不在预期范围内。
我想念什么?