2013-05-14 5 views
4

Есть ли способ получить уведомление, когда разъем для наушников отключен от приложения WinRT? Я хочу иметь возможность приостанавливать воспроизведение MediaElement, когда это происходит, чтобы предотвратить утечку звука через громкоговорители.Как обнаружить отсоединенный разъем для наушников в WinRT?

ответ

3

Уведомление о обнаружении устройства обнаружено через IMMNotificationClient :: OnDeviceStateChanged. Просто попробовав его на рабочем столе win8, OnDeviceStateChanged вызывается с DEVICE_STATE_UNPLUGGED и DEVICE_STATE_ACTIVE, когда (un) подключает устройство. К сожалению, эта часть ваапи документирована как рабочий стол, поэтому я думаю, что в WinRT нет никакого способа сделать это.

0

Единственный способ, которым это должно быть возможно, - WASAPI - Windows Audio Session API (см. WASAPI sample).

К сожалению, WASAPI не отображается в C#, только на C++ (но я не уверен, что он охватывает обнаружение гнезда или нет. Я честно не считаю, что они обнаруживают обнаружение разъемов на уровне API ...).

Надежды на эту помощь.