Одной из самых впечатляющих функций, выпущенных в iOS 4.3, является официальная поддержка SDK для интеграции AirPlay. С помощью всего лишь нескольких строк кода любое приложение для iOS теперь может передавать видео прямо на AppleTV! AirPlay также будет работать с другими поддерживаемыми устройствами Apple, такими как AirPort Express. Читайте дальше, чтобы узнать, как интегрировать AirPlay в ваши приложения!
В предыдущем уроке я продемонстрировал, как воспроизводить видео на iOS4 с помощью MediaPlayer Framework . Это руководство расширит приложение iOS Big Buck Bunny , созданное в этом руководстве, за счет включения новой функциональности AirPlay, предлагаемой в SDK 4.3.
Шаг 1: Включить Airplay
MPMoviePlayerController
AirPlay для любого объекта MPMoviePlayerController
очень просто:
1
|
[moviePlayerController setAllowsAirPlay:YES];
|
Если для свойства allowsAirPlay
значение YES, рядом с элементами управления проигрывателя фильмов появится дополнительная иконка, которая начнет воспроизведение AirPlay. К сожалению, разработчики не имеют прямого контроля над этой функцией и должны зависеть от функционирования этого элемента по умолчанию.
После включения AirPlay элементы управления видеоплеера Big Buck Bunny должны выглядеть следующим образом:
После начала потоковой передачи на устройство AirPlay на экране Big Buck Bunny автоматически отобразится сообщение, уведомляющее пользователя:
Конечно, вы могли бы также установить значение allowsAirPlay
помощью точечной нотации:
1
|
moviePlayerController.allowsAirPlay = YES;
|
Шаг 2. Сделайте AirPlay обратно совместимым
Выполнение строки кода из шага 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 без беспроводного сигнала недостаточно!