2011-08-26 4 views
0

CLEye 드라이버를 사용하여 PS3Eye 카메라로 NAudio에서 녹화하고 있습니다. 카메라에는 4 개의 마이크 어레이가 있으며 4 개의 오디오 채널이 시스템에 제공됩니다.NAudio에서 녹화 할 때 채널 수 감소

기본적으로 모든 채널은 NAudio에 의해 기록됩니다. 나는 PCM 웨이브에 녹음하고 4 채널 WAV 출력 파일을 얻고 있습니다.

NAudio에서 파일을 재생하려고하면 MmException 'noDriver'가 acmFormatSuggest를 호출합니다. 스테레오 파일은 정상적으로 재생됩니다.

사운드 카드가 2 채널 만 출력 할 수 있으며 오류가 발생할 수 있습니다. 내 Windows 오디오 설정을 Quadraphonic으로 설정해도이 문제는 해결되지 않습니다.

아마도 2 채널만을 기록하도록 NAudio에 요청하거나 내 WaveStream을 어딘가에 구현할 수 있습니까?

누구나 NAudio의 채널 수를 다운 샘플링 할 수있는 아이디어가 있습니까? (바람직하게는 기록 시간에). 큰 감사를 드린다!

+0

이것은 내가 필요한 것 [링크] (http://stackoverflow.com/questions/6962312/how-to-use-naudio-to-join-3-wav-files-into-single- 파일 3 채널 포함). –

+0

그래서 WaveStream에서 상속받은 클래스를 만들고 StereoToMonoProvider16의 코드를 기반으로 다운 샘플링을 수행합니다. 아직 작동하지 않고, 제대로 구현하는 방법을 알아 내야합니다 (내 재생/정지 컨트롤이 지금 끊어지고 자동으로 재생되며 소리가 나지 않지만 위치 보고서가 올바르게 표시됩니다) –

답변

0

WaveFormat에서 선언하는 것처럼 간단하지 않습니까? 12000은 샘플 속도이고 "1"은 채널 수입니다.

waveInStream = new WaveIn(WaveCallbackInfo.FunctionCallback()); 
waveInStream.WaveFormat = new WaveFormat(12000, 1); 
waveInStream.DeviceNumber = 2; 

AudioWriter = new WaveFileWriter("c:\\MyAudio.wav", waveInStream.WaveFormat); 
waveInStream.DataAvailable += waveInStream_DataAvailable; 
waveInStream.StartRecording(); 

기본 웹캠 레코더 용 스테레오 마이크와 모노 wav 파일을 출력하는 방법을 설명합니다.

+0

StartRecording()에 대한 예외가 발생하지만, 난 WasapiCapture를 사용하고, 예외는 WasapiCapture 내에서 발생합니다 –

+0

WasapiCapture보다는 WaveIn을 사용하면 기본적으로 어쨌든 쿼드 마이크를 사용하여 1 채널을 얻을 수 있습니다. –