2013-05-06 1 views
0

저는 Naudio 예제로 연주했으며 "WaveFileStream"기능을 사용하여 열린 WAV 파일을 증폭 할 수 있습니다. (코드 예 : AudioPlaybackPanel는) ​​: Naudio를 사용하여 마이크 입력 증폭

내가 변수 선언을 추가, 그래서 나중에 채널에 액세스 할 수 있습니다이 잘 작동

 private ISampleProvider CreateInputStream(string fileName) 
     { 
     ... 
     this.fileWaveStream = plugin.CreateWaveStream(fileName); 
     var waveChannel = new SampleChannel(this.fileWaveStream, true); 
     waveFromFile = waveChannel; 
     ... 
    } 
:
SampleChannel waveFromFile; 

그리고 기존의 기능에

, 나는 그것을 설정

그때 나는 증폭 버튼을 추가하고이 내가 예상대로 작동합니다

float ampFactor = 1.0f; 
    private void ampButton_Click(object sender, EventArgs e) 
    { 
     ampFactor += 2; 
     if (ampFactor >= 9.0f) 
      ampFactor = 1.0f; 
     waveFromFile.Volume = ampFactor; 
    } 

을하지만 어떻게 할 수 입력이 WAV 파일이 아닌 대신 마이크 인 경우이 작업을 수행합니까?

NAudio 예제를보고 "RecordingPanel"데모에이 코드를 추가하려고하면 무시됩니다. 즉, 볼륨에 값을 넣었지만 아무런 변화가 없음을 의미합니다.

마이크에서 들어오는 오디오를 증폭 할 수 있습니까? 그렇다면 샘플 코드 스 니펫을 보여줄 수 있습니까? 온라인에서 보았지만 찾지 못했습니다.

답변

1

SampleChannel의 샘플 수정 기능을 활용하려면 실제로 SampleChannel을 통해 오디오를 가져와야합니다. 이를 위해 녹음 된 오디오를 BufferedWaveProvider에 넣은 다음 SampleChannel에 넣을 수 있습니다. 그렇다면 SampleChannel과 WaveFileWriter에서 충분한 오디오를 꺼내어 채워지지 않도록해야합니다. 16 비트 WAV 파일을 원한다면 SampleToWaveProvider16을 사용할 수도 있습니다.

관련 문제