WinRT 앱에서 헤드폰 잭의 플러그를 뽑을 때마다 알림을받을 수있는 방법이 있습니까? 스피커를 통해 사운드가 누설되는 것을 막을 때 MediaElement 재생을 일시 중지 할 수 있기를 원합니다.WinRT에서 플러그가 뽑힌 헤드폰 잭을 감지하는 방법은 무엇입니까?
4
A
답변
3
잭 감지 알림은 IMMNotificationClient :: OnDeviceStateChanged를 통해 노출됩니다. 그냥 win8 바탕 화면에서 그것을 시도, OnDeviceStateChanged는 DEVICE_STATE_UNPLUGGED 및 DEVICE_STATE_ACTIVE와 함께 장치를 연결 해제 할 때 호출됩니다. 안타깝게도 wasapi의 일부는 바탕 화면으로 만 문서화되어 있으므로 WinRT에서 그렇게 할 방법이 없다고 생각됩니다.
0
가능한 유일한 방법은 WASAPI - Windows 오디오 세션 API입니다 (WASAPI sample 참조).
슬프게도 WASAPI는 C#에서만 C#으로 노출되지 않습니다 (하지만 잭 감지 여부는 확실하지 않습니다.) 솔직히 API 수준에서 잭 감지를 노출한다고 생각하지 않습니다.).
희망 사항입니다.
4
다음을 시도해보십시오 :
윈도우 :: 장치 :: 열거 :: DeviceInformation :: CreateWatcher (윈도우 :: 장치 :: 열거 :: 명 DeviceClass :: AudioRender);
이것은 WinRT에서 작동합니다.
메서드에 대한 자세한 내용은 MSDN을 참조하십시오. http://msdn.microsoft.com/en-us/library/ie/windows.devices.enumeration.deviceinformation.createwatcher