Airplay, Apple TV и Remote Events - это только для потокового аудио / видео? - PullRequest
13 голосов
/ 11 декабря 2011

Приложение для моего 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):

  1. Запустите приложение на iPad с включенным зеркалированием на Apple TV.
  2. Нажмите кнопку «Play» на пульте дистанционного управления - ничего не происходит.
  3. Нажмите кнопку «Play» на пользовательском интерфейсе приложения, и музыка начнет воспроизводиться через Apple TV.
  4. Нажмите кнопку «Play» на пульте, чтобы остановить музыку, но музыка не останавливается.
  5. Измените маршрутизацию Airplay на iPad, чтобы он больше не зеркалировал и просто отправлял звук на Apple TV. Если вы установите точку останова на «remoteControlReceivedWithEvent» и нажмете кнопку «Воспроизведение / Пауза» на пульте, вы можете перехватить событие. Это противоречиво - после получения одного или двух событий перестает работать.

Кому-нибудь еще повезло с Airplay и Remote Control Events? Предложения?

1 Ответ

3 голосов
/ 13 декабря 2011

Я также экспериментировал со вторым экраном через AirPlay Mirroring и могу подтвердить, что удаленные события Apple не пересылаются с Apple TV на устройство iOS во время зеркалирования.

В моем собственном тестовом приложении я могу последовательно получать события пульта ДУ для наушников и события пульта ДУ от «Now Playing Controls» - элементы управления мультимедиа, доступные на нижней панели инструментов после двойного нажатия кнопки «Домой».

Но с пульта Apple TV события не отображаются.

Еще один элемент для добавления в список желаний Apple / AirPlay ...

...