简体   繁体   English

N录音 output stream

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM