0

Expression Encoder를 사용하여 웹캠과 시스템 오디오를 캡처하려고하는데 웹캠은 정상적으로 작동하지만 시스템 오디오는 조용합니다.C# - 표현식 인코더 - 시스템 오디오를 캡처하지 않습니다.

여기 튜토리얼 : CodeProject Expression Encoder Tutorial을 따라했지만 제대로 작동하지 않습니다.

오디오 장치를 나열하면 "스피커 ...", "마이크 ..."및 "헤드폰 ..."이 나열됩니다 (시스템 트레이의 재생 장치에 있음). 스피커 나 헤드폰에서 레코드를 얻는다면 아무 것도 얻지 못합니다. (마이크 오디오를 선택하면 괜찮습니다.) 여기

나는 코드를 사용하고 있습니다 :

job = new LiveJob(); 

LiveDeviceSource lds = job.AddDeviceSource(ledv[0], leda[1]); 

FileArchivePublishFormat fileOut = new FileArchivePublishFormat(); 
fileOut.OutputFileName = string.Format("C:\\Users\\user1\\Desktop\\testvideo-{0:yyyyMMdd_hhmmss}.wmv", DateTime.Now); 

job.PublishFormats.Add(fileOut); 

lds.PreviewWindow = new PreviewWindow(new System.Runtime.InteropServices.HandleRef(panel1, panel1.Handle)); 

job.StartEncoding(); 

job.ActivateSource(lds); 

사람이이 시스템의 오디오를 녹음하지 않는 이유 어떤 생각을 가지고 있습니까? 작동하기 전에 혼란에 빠뜨릴 필요가있는 다른 설정이 있습니까?

감사합니다.

편집 : 내가이 이제까지 변경 한 경우 인코딩을 보는 것입니다하지만 난 마이크 오디오 장치를 변경하는 경우는 언제나 0에 앉아 때 job.CurrentAudioVolume를 인쇄하기로 결정

는,이 값은 상승 소리가있을 때 (예상대로). 따라서 SDK가 내 시스템 오디오 (스피커 또는 헤드폰 중 하나)를 녹음 할 수없는 것처럼 보입니다.

답변

0

좋아, 나는 동료의 도움으로 조금씩 분류했다.

기본적으로 헤드폰/스피커 등은 출력 장치 일 뿐이므로 입력 장치로 루프백 드라이버를 설치해야합니다.

Sourceforge/Github에 무료라는 것이 있습니다. 오디오 장치로 선택하기 만하면됩니다.

작은 문제가 하나 있는데, job.StopEncoding();을 호출하는 "레코드"/ "중지"버튼이 있습니다. 루프백 드라이버가 제대로 중지되지 않았기 때문에 StopEncoding()을 선택한 루프백 오디오 드라이버가 Window를 정지 시키지만 job.RemoveDeviceSource (deviceSource)를 호출하면 추측됩니다. StopEncoding()을 호출 한 후 다음 StartEncoding() 전에 다시 추가하면 제대로 작동합니다.