저는 NAudio를 처음 사용하고 있으며 마이크에서 오디오를 녹음하고 Wave 파일에 기록하는 작은 프로그램을 작성하려고합니다. 내 프로그램의 Main 함수에서 recordStuff() 함수를 호출하면 프로그램이 WaveIn 객체의 생성을 지나치지 않고 프로그램이 "WaveInEvent를 사용하여 백그라운드 스레드에 기록"이라는 메시지가있는 InvalidOperationException과 함께 종료됩니다. . NAudio에 대한 지식이있는 사람이이게 무슨 뜻인지 말해 줄 수 있습니까? recordStuff() 함수를 자체 스레드로 호출 해봤지만 동일한 결과가 발생합니다.NAudio WaveIn을 구성 할 때 InvalidOperationException이 발생했습니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NAudio.Wave;
namespace SimpleWave
{
class Recorder
{
public Recorder()
{
writer = new WaveFileWriter("C:\\Users\\Paul\\Desktop\\yeah.wav", new NAudio.Wave.WaveFormat(44100, 1));
}
public static List<byte> buff = new List<byte>();
public static WaveFileWriter writer;
public void recordStuff()
{
// WaveIn Streams for recording
WaveIn waveInStream;
waveInStream = new WaveIn();
waveInStream.DeviceNumber = 0;
waveInStream.WaveFormat = new WaveFormat(44100, 2);
writer = new WaveFileWriter(@"C:\Users\Paul\Desktop\this.wav", waveInStream.WaveFormat);
waveInStream.DataAvailable += new EventHandler<WaveInEventArgs>(waveInStream_DataAvailable);
waveInStream.StartRecording();
}
public void waveInStream_DataAvailable(object sender, WaveInEventArgs e)
{
writer.Write(e.Buffer, 0, e.BytesRecorded);
}
}
}
Windows 메시지 란 무엇입니까? –