[英]NAudio recording output stream
First I initialize it首先我初始化它
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);
On waveInStream.StartRecording();在 waveInStream.StartRecording(); I get an exception - BadDeviceId calling waveInOpen.
我得到一个异常 - BadDeviceId 调用 waveInOpen。 And I see WaveIn.DeviceCount = 0;
我看到 WaveIn.DeviceCount = 0; But I don't need an actual input device like mic, I want to record sound I generate and pass to a sound card output.
但我不需要像麦克风这样的实际输入设备,我想记录我生成的声音并传递给声卡 output。 How should I set waveInStream to do it?
我应该如何设置 waveInStream 来做到这一点?
I did like I was suggested我确实像有人建议的那样
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, 0, e.BytesRecorded);
}
But on loopback_capture.StartRecording();但是在loopback_capture.StartRecording(); I get -
我得到 -
Value does not fall within the expected range.
值不在预期范围内。
What do I miss?我想念什么?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.