나는 NAudio를 사용하여 마이크에 대해 말하는 것을 듣고 싶습니다. 그리고 이것은 지금까지 제 코드이지만 문제는 들리지 않습니다. 어떤 도움을 주시면 감사하겠습니다.마이크에서 들어오는 오디오 듣기
public partial class frmMain : Form
{
private WaveIn waveIn; // Gets an audio from microphone
private WaveOut waveOut; // Sends audio to speaker
private BufferedWaveProvider waveProvider; // Gets an audio from stream
public frmMain()
{
InitializeComponent();
}
private void frmMain_Load(object sender, EventArgs e)
{
waveOut = new WaveOut();
waveIn = new WaveIn();
waveProvider = new BufferedWaveProvider(waveIn.WaveFormat);
waveOut.Init(waveProvider);
waveIn.DataAvailable += waveIn_DataAvailable;
waveOut.Play();
}
private void waveIn_DataAvailable(object sender, WaveInEventArgs e)
{
waveProvider.Read(e.Buffer, 0, e.BytesRecorded);
}
private void btnStop_Click(object sender, EventArgs e)
{
waveIn.StopRecording();
waveIn.Dispose();
}
private void btnStart_Click(object sender, EventArgs e)
{
waveIn.StartRecording();
}
}
난 후 스피커로 보내 내가 BufferedWaveProvider 데이터를 읽 클라이언트 측에서 그 소켓에 마이크로부터 데이터를 전송하는 네트워크 프로그래밍에서이 시나리오를 사용한다. 더 좋은 방법이 있다면 몇 가지 의견을 적어주십시오.
TIA
DataAvailable 이벤트에서 잘못된 스트림에서 읽고 있습니다. 그러면 아무 것도하지 않아요. –
당신의'waveIn_DataAvailable' 메쏘드는'waveProvider'에서 쓰는 대신에 그것을 읽으려고합니다. 'waveProvider.Read'를'waveProvider.AddSamples'로 변경하고 도움이되는지 확인하십시오. 또한'waveIn' 객체의 초기화가 완료되지 않은 것 같습니다 ... 당신은'waveIn.StartRecording'을 호출하지 않았습니다. – Corey
btnStart_Click 이벤트에서 StartRecording을 수행합니다. –