Управляйте приложениями WP7 и WP8 с помощью bluetooth-гарнитуры

Я разработал приложение музыкального проигрывателя для Windows Phone 7.5 и Windows Phone 8. Теперь я хочу слушать музыку с помощью различных устройств Bluetooth. Я могу подключить его к своему телефону и слушать музыку, так что все работает отлично. Но это ведет себя странно в определенных сценариях. Если музыка поставлена ​​на паузу, она возобновится в динамиках, если я отключу Bluetooth. Я вижу в своем журнале, что он получает действие пользователя на UserAction.SEEK в положение, которое было, когда я выключил Bluetooth. В этот момент переменная player.Position каким-то образом стала равной 0, поэтому она становится равной 0 и возвращается туда, где я был. И я не делаю ничего, что могло бы вызвать это действие.

Что я спрашиваю: есть ли способ взять на себя управление или получить какой-либо контроль в AudioPlaybackAgent, который я использую, над тем, что происходит, когда я что-то делаю с моими устройствами Bluetooth. Происходит ли какое-либо событие или все это обрабатывается ОС? Если да, то почему мое приложение ведет себя не так, как стандартное? Кроме того, почему я получаю UserAction.SEEK, когда выключаю Bluetooth-устройство?

Если мой вопрос неясен, пожалуйста, не стесняйтесь спрашивать!


person kgrevehagen    schedule 19.12.2012    source источник


Ответы (1)


Это известная проблема с платформой, но она исправлена ​​в WP8 GDR2. Вы можете обойти эту проблему, обнаружив последовательность OnUserAction Pause Seek Play. После обнаружения вы можете приостановить следующий вызов OnPlayerStateChanged. Несколько вещей, о которых следует знать:

  • Не гарантируется, что последовательные вызовы OnUserAction будут вызываться в одном и том же экземпляре AudioPlayer, поэтому любое состояние должно храниться в статическом состоянии.
  • Трек будет воспроизводиться из динамика в течение короткого времени, поэтому вы можете установить громкость на 0 (конечно, предварительно записав предыдущее значение).

Я разместил Gist с полной реализацией. Пример использования и более подробное изложение проблемы: доступно в моем блоге.

person Richard Szalay    schedule 18.08.2013