Статьи

Совет по iOS SDK: включение AirPlay для приложений iOS 4.3

Одной из самых впечатляющих функций, выпущенных в iOS 4.3, является официальная поддержка SDK для интеграции AirPlay. С помощью всего лишь нескольких строк кода любое приложение для iOS теперь может передавать видео прямо на AppleTV! AirPlay также будет работать с другими поддерживаемыми устройствами Apple, такими как AirPort Express. Читайте дальше, чтобы узнать, как интегрировать AirPlay в ваши приложения!

В предыдущем уроке я продемонстрировал, как воспроизводить видео на iOS4 с помощью MediaPlayer Framework . Это руководство расширит приложение iOS Big Buck Bunny , созданное в этом руководстве, за счет включения новой функциональности AirPlay, предлагаемой в SDK 4.3.


MPMoviePlayerController AirPlay для любого объекта MPMoviePlayerController очень просто:

1
[moviePlayerController setAllowsAirPlay:YES];

Если для свойства allowsAirPlay значение YES, рядом с элементами управления проигрывателя фильмов появится дополнительная иконка, которая начнет воспроизведение AirPlay. К сожалению, разработчики не имеют прямого контроля над этой функцией и должны зависеть от функционирования этого элемента по умолчанию.

После включения AirPlay элементы управления видеоплеера Big Buck Bunny должны выглядеть следующим образом:

Кнопка AirPlay

После начала потоковой передачи на устройство AirPlay на экране Big Buck Bunny автоматически отобразится сообщение, уведомляющее пользователя:

Airplay Воспроизведение сообщения

Конечно, вы могли бы также установить значение allowsAirPlay помощью точечной нотации:

1
moviePlayerController.allowsAirPlay = YES;

Выполнение строки кода из шага 1 на более старых версиях iOS, которые не поддерживают свойство allowsAirPlay приведет к исключению времени выполнения, которое приведет к сбою вашего приложения. Чтобы предлагать AirPlay только тем устройствам, которые его поддерживают, нам нужно поместить условие вокруг оператора, который проверит, поддерживает MPMoviePlayerController объект allowsAirPlay параметр allowsAirPlay .

Для этого обновите код, чтобы использовать respondsToSelector: метод:

1
2
3
4
if([moviePlayerController respondsToSelector:@selector(setAllowsAirPlay:)])
{
    [moviePlayerController setAllowsAirPlay:YES];
}

Приведенный выше фрагмент активирует AirPlay, когда он поддерживается, и просто пропускает блок кода на неподдерживаемых устройствах.


При внедрении AirPlay в свои проекты необходимо помнить несколько вещей:

1. AirPlay не поддерживается на старых устройствах.

Пользователи iPhone 3G отчаиваются: не AirPlay для вас. Apple имеет привычку делать новые функции SDK и iOS доступными только на самых последних устройствах, и это верно с дополнением AirPlay к SDK 4.3.

Проблемы поддержки не ограничиваются только старыми устройствами iPhone. По слухам, более старые версии AppleTV не поддерживают новые функции AirPlay.

2. Пользователи должны обновить программное обеспечение AppleTV и iOS

При запуске приложения с поддержкой AirPlay имейте в виду, что ваши пользователи должны будут иметь на своем устройстве как последнюю версию iOS, так и обновленную версию программного обеспечения AppleTV. Ваше приложение может работать отлично, но более старая версия ОС, работающая на Apple TV, может по-прежнему красть радость вашего пользователя.

3. Пользователи должны делиться сетью с устройствами AirPlay

Чтобы iOS могла найти другие устройства с поддержкой Apple AirPlay, вам необходимо подключиться к той же сети Wi-Fi, к которой подключены устройства AirPlay. Соединение Edge / 3G без беспроводного сигнала недостаточно!