2012-07-21 3 views
0

C#을 사용하여 오디오 장치를 연결하고 플러그를 뽑았을 때를 감지하는 방법은 무엇입니까?오디오 장치가 꽂혀 있고 플러그가 뽑혀있는 경우를 감지하는 방법은 무엇입니까?

+0

"오디오 장치"란 무엇을 의미하며 연결되는 부분이 무엇입니까? 예를 들어 chinch의 헤드폰? –

+0

여기서 오디오 장치는 "오디오 잭"(즉, 헤드폰 및 스피커)을 의미하며, 헤드폰 및 스피커 플러그를 시스템의 입력/출력 장치에 삽입합니다. – lokesh

답변

1

아마도 가장 좋은 방법은 WMI입니다. 대부분의 WMI 클래스의 인스턴스 생성/제거를 반영하는 WMI 이벤트에 가입 할 수 있습니다. 각 오디오 장치에 대해 Win32_SoundDevice의 인스턴스가 존재합니다.

특정 장치의 상태 (스피커, 음소거 등)에 대한 자세한 내용을 보려면 WMI에이 항목이 포함되어 있지 않습니다.

아마도 "endpoint"장치를 열거 할 수있는 기능이 포함 된 MMDevice API에 액세스하려면 COM interop을 사용해야합니다. 가져올 수있는 typelib이 아닌 것처럼 힘든 일이 될 것입니다. 대신 C/C++로 작성하여 프록시를 제공하거나 .NET에서 필요한 COM 인터페이스 등을 수동으로 다시 작성해야합니다.