2017-01-22 2 views
1

문제 : 학교 프로젝트의 일환으로

, 내가 NAudio 라이브러리를 사용하여 기타 AMP를 제공하는 응용 프로그램을 구축하는 시도합니다.NAudio 창 신청서는 지연 loopingback (DirectSoundOut에 입력)이

기타를 꽂으면 인식되고 모든 것이 제대로 작동하지만 스피커에서 입력과 출력 사이에 큰 지연이 있습니다.

여기에 내 소스 코드 : I은 선택된 입력 (마이크로폰/기타)를 사용하여 버튼 클릭 이벤트에 잡을이 코드

private void button2_Click(object sender, EventArgs e) 
     { 
      if (sourceList.SelectedItems.Count == 0) return; 

      int deviceNumber = sourceList.SelectedItems[0].Index; 
      sourceStream = new WaveIn(); 
      sourceStream.DeviceNumber = deviceNumber; 
      sourceStream.WaveFormat = new WaveFormat(44100, WaveIn.GetCapabilities(deviceNumber).Channels); 
      sourceStream.StartRecording(); 

      WaveInProvider waveIn = new WaveInProvider(sourceStream); 

      waveOut = new DirectSoundOut(); 
      waveOut.Init(waveIn); 
      waveOut.Play(); 
     } 

하고 출력 접수에 사운드로 변환한다. 입력과 출력 사이의 지연은 약 1 초이며 거래 차단기입니다.

응용 프로그램의 응답 속도를 높이려면 어떻게해야합니까?

답변

0

DirectSoundOut 및 은 특히 대기 시간이 짧은 오디오 API는 아닙니다. 이런 식으로 ASIO가 좋습니다. AsioOut은 불행하게도 좀 더 복잡하게 작동하지만 훨씬 낮은 대기 시간을 확보 할 수 있어야합니다.

+0

정말 고마워요! – EldarGoren