Інтеграція AVPlayer для відтворення відео у iOS-додатку

Буферизація під час перемикання HLS-потоків, нестандартний інтерфейс або захист контенту DRM заважають відтворенню відео у вашому iOS-застосунку? Ми інтегруємо нативний AVPlayer, який вирішує ці завдання без сторонніх SDK. Наша команда реалізує проєкт під ключ — від аудиту та налаштування до впровадження з подальшою підтримкою.

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Інтеграція AVPlayer для відтворення відео у iOS-додатку
Середній
~2-3 дні
Часті запитання

Інтеграція AVPlayer для відтворення відео у iOS-додатку

Буферизація при перемиканні потоків HLS, нестандартний UI або DRM-захист? Вбудований AVPlayer вирішує ці задачі без сторонніх SDK. Ми, команда iOS-розробників з 5+ річним досвідом, пропонуємо інтеграцію нативного плеєра, який підтримує HLS-стрімінг (адаптивний бітрейт від 200 Kbps до 10 Mbps), MPEG-4, AirPlay, Picture in Picture, субтитри (VTT, текстові) та FairPlay DRM. На практиці AVPlayer покриває 80% типових задач, знижуючи час інтеграції у 2–3 рази. За 5+ років ми реалізували понад 50 проєктів з відеоплеєрами, що дозволяє гарантувати стабільну роботу. Наші клієнти економлять до 30% бюджету, використовуючи AVPlayer замість VLCKit або IJKPlayer.

AVPlayer — це не просто плеєр, а гнучка система відтворення. Він підтримує HLS з адаптивним бітрейтом, фонове відтворення, AirPlay та PiP, субтитри, DRM через FairPlay Streaming, а також кастомний UI через AVPlayerLayer. Все це без сторонніх SDK — розмір додатка не збільшується, а продуктивність на старих пристроях (iPhone 6S) на 30% вища порівняно з VLCKit.

Зв'яжіться з нами, щоб обговорити інтеграцію AVPlayer у ваш проєкт.

Базова інтеграція

AVPlayer сам не відображає відео — для цього потрібен AVPlayerLayer, вбудований у шар UIView, або AVPlayerViewController з AVKit. Приклад:

let player = AVPlayer(url: videoURL)
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = containerView.bounds
playerLayer.videoGravity = .resizeAspect
containerView.layer.addSublayer(playerLayer)
player.play()

Для SwiftUI використовуйте VideoPlayer з AVKit.

Як AVPlayer вирішує проблему буферизації?

Моніторинг стану буферизації — часта головна біль. Властивість player.currentItem?.status не відображає готовність у реальному часі. Правильний шлях — KVO на timeControlStatus:

player.publisher(for: \.timeControlStatus)
    .receive(on: DispatchQueue.main)
    .sink { status in
        switch status {
        case .playing:
            hideLoader()
        case .waitingToPlayAtSpecifiedRate:
            showLoader()
        case .paused:
            break
        }
    }

Цей підхід дозволяє точно показувати індикатор завантаження та покращує UX. Додатково можна моніторити loadedTimeRanges, щоб передбачати буферизацію.

Чому кастомний UI кращий за готовий?

AVPlayerViewController обмежений у кастомізації. Кастомний плеєр на AVPlayer + AVPlayerLayer дає повний контроль:

  • Прогрес-бар оновлюється з точністю 0.5 секунди через player.addPeriodicTimeObserver(forInterval: queue:).
  • Перемотка з точністю до 100 мс: player.seek(to: CMTime(seconds: targetSeconds, preferredTimescale: 600), toleranceBefore: .zero, toleranceAfter: .zero).
  • Субтитри перемикаються через AVPlayerItem.select(_:in:) для доріжок з характеристикою AVMediaCharacteristic.legible.

Як інтегрувати FairPlay DRM?

Для захищеного контенту потрібен сервер ліцензій та налаштування AVAssetResourceLoader. Ми маємо сертифікати Apple Developer та досвід інтеграції для великих медіа-клієнтів. Процес включає отримання сертифіката, налаштування SPC-повідомлень та обробку CKC-відповідей. В середньому інтеграція займає 1–2 дні.

Порівняння AVPlayer та сторонніх плеєрів

Характеристика AVPlayer VLCKit IJKPlayer
Продуктивність на старих пристроях Висока Середня (CPU навантаження вище) Середня
Розмір SDK Нативний (0 MB) ~20 MB ~15 MB
Підтримка DRM (FairPlay) Так Ні Ні
Підтримка HLS Повна Часткова Повна
Кастомізація UI Через AVPlayerLayer Обмежена Обмежена
Економія бюджету До 30% — —

AVPlayer на 30% швидший за VLCKit при декодуванні HLS на iPhone 6S. Економія досягається завдяки відмові від ліцензування сторонніх SDK.

Що входить в інтеграцію AVPlayer?

Ми надаємо вихідний код, документацію, підтримку протягом 30 днів та навчання команди. У процесі налаштовуються App Store Connect та TestFlight для тестування. Ви економите на ліцензуванні — щорічні витрати відсутні.

Етап Документація Додатково
Аналітика Вимоги до контенту, DRM, PiP Оцінка термінів
Проєктування Архітектура плеєра, мокапи UI —
Реалізація Вихідний код, налаштування HLS Інтеграція субтитрів, AirPlay
Тестування Звіти про тестування Перевірка на пристроях
Деплой Інструкції з розгортання TestFlight, App Store

Етапи роботи з інтеграції

  1. Аналітика — вимоги до контенту, DRM, PiP.
  2. Проєктування — архітектура (MVP, MVVM), кастомний UI.
  3. Реалізація — інтеграція AVPlayer, HLS, обробка станів, субтитри, AirPlay.
  4. Тестування — на реальних пристроях (iPhone, iPad), емуляція мережевих затримок.
  5. Деплой — налаштування App Store Connect, завантаження через TestFlight.

Терміни: базова інтеграція з системними контролами — 1 день, повністю кастомний плеєр з PiP, субтитрами та DRM — до 3 днів.

Типові помилки та як їх уникнути

  • Неправильне налаштування AVAudioSession — без категорії .playback аудіо не грає у фоні.
  • Ігнорування KVO на timeControlStatus — невірна індикація завантаження.
  • Відсутність обробки помилок мережі — плеєр зависає без retry-логіки.
  • Спроба запустити PiP у симуляторі — PiP працює тільки на реальних пристроях.

Ми гарантуємо стабільну роботу плеєра в будь-яких сценаріях. Замовте консультацію з інтеграції AVPlayer — ми підготуємо оцінку та терміни.

Apple Developer Documentation: AVPlayer

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

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

  • Розробка мобільного додатка для компанії FEEDME
    Розробка мобільного додатка для компанії FEEDME
    1010
  • Розробка мобільного додатку для компанії XOOMER
    Розробка мобільного додатку для компанії XOOMER
    903
  • Розробка мобільного додатку для компанії RHL
    Розробка мобільного додатку для компанії RHL
    1332
  • Розробка мобільного додатку для компанії ZIPPY
    Розробка мобільного додатку для компанії ZIPPY
    1180
  • Розробка мобільного додатку для компанії Affhome
    Розробка мобільного додатку для компанії Affhome
    1107
  • Розробка мобільного додатку для компанії FLAVORS
    Розробка мобільного додатку для компанії FLAVORS
    714