Приложение для моего iPad представляет второй пользовательский интерфейс для Apple TV, используя методы, описанные здесь, то есть обнаружение и рисование на UIScreen, который представляет Apple TV:
http://developer.apple.com/library/IOs/#documentation/AudioVideo/Conceptual/AirPlayGuide/EnrichYourAppforAirPlay/EnrichYourAppforAirPlay.html
В этом документе также обсуждается получение событий дистанционного управления:
Когда используется AirPlay, ваши медиафайлы могут воспроизводиться в другой комнате с вашего хост-устройства. Устройство вывода AirPlay может иметь свои собственные элементы управления или реагировать на пульт дистанционного управления Apple. Для лучшего взаимодействия с пользователем ваше приложение должно прослушивать удаленные события, такие как воспроизведение, пауза и запросы ускоренной перемотки, и реагировать на них. Включение удаленных событий также позволяет вашему приложению реагировать на элементы управления наушников или наушников, которые физически подключены к хост-устройству.
Я реализовал подход, который они описывают, чтобы начать получать события удаленного управления, как в моем приложении, так и в простом тестовом проекте, но я не могу обнаружить какие-либо события. Я не получаю события, когда использую наушники, подключенные непосредственно к iPad, и не получаю события, когда отправляю просмотр на Apple TV.
Я прихожу к выводу, что на самом деле единственный способ перехватить события удаленного управления - это если передавать потоковое мультимедиа на Apple TV , а не просто представлять пользовательский интерфейс приложения или зеркалирование.
Эта гипотеза, кажется, подтверждается путем тестирования следующих шагов с использованием примера приложения MixerHost (http://developer.apple.com/library/ios/#samplecode/MixerHost/Introduction/Intro.html):
- Запустите приложение на iPad с включенным зеркалированием на Apple TV.
- Нажмите кнопку «Play» на пульте дистанционного управления - ничего не происходит.
- Нажмите кнопку «Play» на пользовательском интерфейсе приложения, и музыка начнет воспроизводиться через Apple TV.
- Нажмите кнопку «Play» на пульте, чтобы остановить музыку, но музыка не останавливается.
- Измените маршрутизацию Airplay на iPad, чтобы он больше не зеркалировал и просто отправлял звук на Apple TV. Если вы установите точку останова на «remoteControlReceivedWithEvent» и нажмете кнопку «Воспроизведение / Пауза» на пульте, вы можете перехватить событие. Это противоречиво - после получения одного или двух событий перестает работать.
Кому-нибудь еще повезло с Airplay и Remote Control Events? Предложения?