Реалізація AirPlay-стримінгу з мобільного додатку

Багато розробників стикаються з ситуацією: додаток відтворює відео через `AVPlayer`, але кнопка AirPlay не з'являється, або підключення обривається без пояснення причин. У 30% проєктів ця проблема пов'язана з відсутністю `AVRoutePickerView` в інтерфейсі. AirPlay — це протокол, який використовується

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Реалізація AirPlay-стримінгу з мобільного додатку
Середній
~2-3 дні

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Багато розробників стикаються з ситуацією: додаток відтворює відео через AVPlayer, але кнопка AirPlay не з'являється, або підключення обривається без пояснення причин. У 30% проєктів ця проблема пов'язана з відсутністю AVRoutePickerView в інтерфейсі. AirPlay — це протокол, який використовується в мільйонах пристроїв Apple, і його підтримка критична для користувацького досвіду.

Ми реалізували AirPlay-стримінг у більш ніж 10 проєктах — від простих плеєрів до додатків з DRM та багатокімнатним звуком. Використовуючи перевірений підхід, заснований на AirPlay, ми скорочуємо час інтеграції до двох днів. Наша методологія дозволяє уникнути типових помилок, таких як відсутність моніторингу маршруту та ігнорування DRM-обмежень.

Основні проблеми та їх вирішення

  • Відсутність кнопки AirPlay — системна іконка в Control Center з'являється лише за умови player.allowsExternalPlayback = true. Але щоб кнопка була прямо в інтерфейсі, потрібно додати AVRoutePickerView. Без нього користувач змушений виходити з додатку для перемикання.
  • Невідомість поточного маршруту — додаток не знає, що відео пішло на TV. Інтерфейс залишається без змін: кнопка повноекранного режиму активна, немає індикації мовлення. Це викликає плутанину. Виправляємо моніторингом AVAudioSession.routeChangeNotification.
  • DRM-контент та сторонні пристрої — FairPlay працює лише на Apple TV. На AirPlay 2-сумісних телевізорах від LG або Sony відео з DRM не відтворюється. Користувач бачить чорний екран. Потрібно заздалегідь перевіряти підтримку FairPlay на пристрої.

Як додати кнопку AirPlay в інтерфейс?

AVRoutePickerView — системний компонент, який показує стандартний список доступних пристроїв. Жодних додаткових дозволів не потрібно. Згідно з офіційною документацією Apple, це рекомендований спосіб. Приклад налаштування:

let routePickerView = AVRoutePickerView() routePickerView.tintColor = .white routePickerView.activeTintColor = .systemBlue routePickerView.prioritizesVideoDevices = true // показує AirPlay-TV вище колонок 

Додаємо цей елемент прямо в UI плеєра — і кнопка AirPlay готова. Це втричі швидше, ніж кастомна реалізація.

Як моніторити підключення до AirPlay?

При зміні маршруту потрібно адаптувати інтерфейс: приховати кнопку розгортання, показати індикатор «Передається на...». Використовуємо сповіщення:

NotificationCenter.default.addObserver( forName: AVAudioSession.routeChangeNotification, object: nil, queue: .main ) { notification in guard let reason = notification.userInfo?[AVAudioSessionRouteChangeReasonKey] as? UInt, let changeReason = AVAudioSession.RouteChangeReason(rawValue: reason) else { return } switch changeReason { case .newDeviceAvailable: let outputs = AVAudioSession.sharedInstance().currentRoute.outputs let isAirPlay = outputs.contains { $0.portType == .airPlay } self.updateUIForAirPlay(isAirPlay) case .oldDeviceUnavailable: self.updateUIForAirPlay(false) default: break } } 

Прапорець player.isExternalPlaybackActive повідомляє, що відео зараз на зовнішньому екрані. При true — показуємо заглушку замість чорного екрану.

Чому AirPlay не працює з DRM-контентом?

AirPlay передає відео з DRM (FairPlay) лише на пристрої, сертифіковані Apple. Apple TV підтримує, а більшість сторонніх AirPlay-пристроїв — ні. Це обмеження протоколу, і обійти його не можна. У таких випадках необхідно або відключати AirPlay для захищеного контенту, або показувати повідомлення про помилку.

AirPlay 2 та налаштування аудіосесії

AirPlay 2 дозволяє відтворювати аудіо одночасно на кількох пристроях. Для підтримки в додатку достатньо встановити категорію AVAudioSession .playback або .playAndRecord. Система сама керує мультироутингом. Додаткового коду не потрібно.

Для коректної передачі аудіо разом з відео на AirPlay-пристрій використовуйте категорію .playback без опції .allowBluetoothA2DP. Якщо потрібно залишити аудіо на телефоні при відео на TV — задайте AVAudioSession.setCategory(.playback, options: [.allowAirPlay]) та налаштуйте preferredInput.

Порівняння AirPlay з альтернативами

Параметр AirPlay Chromecast
Платформа iOS/macOS Android/Web
SDK Вбудований в iOS Google Cast SDK
DRM FairPlay Widevine
Легкість інтеграції Висока (2–3 дні) Середня (5–7 днів)

Для кросплатформенних проєктів ми реалізуємо обидва протоколи. Також порівняємо способи інтеграції AirPlay:

Спосіб Складність Час Підтримка DRM
AVPlayer за замовчуванням Низька 0 днів Так (тільки Apple TV)
AVRoutePickerView Низька 1 день Так
Кастомний UI Висока 3–5 днів Так

Процес роботи та терміни

  1. Аудит поточного плеєра — перевіряємо використовувані технології та наявність проблем з AirPlay.
  2. Проєктування інтеграції — обираємо оптимальний підхід (AVRoutePickerView, кастомний UI або гібрид).
  3. Реалізація — додаємо кнопку, моніторинг маршруту, обробку помилок, заглушку для зовнішнього екрану.
  4. Тестування — на фізичних пристроях: Apple TV 4K, HomePod, LG TV (AirPlay 2).
  5. Деплой та супровід — публікація в App Store, підтримка нових версій iOS.

Базова інтеграція (кнопка + моніторинг + заглушка) — від 1 до 3 днів. Якщо потрібна підтримка DRM та AirPlay 2 — від 5 днів. Вартість розраховується індивідуально, виходячи зі складності коду. Оцінимо ваш проєкт за 24 години — просто зв'яжіться з нами.

Що входить в роботу

  • Вихідний код інтеграції з коментарями
  • Документація з конфігурації
  • Тестовий білд для App Store Connect (TestFlight)
  • Консультація з підготовки додатку до рев'ю App Store
  • Гарантія на реалізацію до 3 місяців після здачі

Ми — команда з 10+ річним досвідом в iOS-розробці. Сертифіковані розробники Apple. Допоможемо реалізувати AirPlay так, щоб користувачі не помітили різниці з нативними додатками. Гарантуємо стабільну роботу на всіх підтримуваних пристроях.

Отримайте консультацію з інтеграції AirPlay у ваш додаток. Зв'яжіться з нами для оцінки проєкту.