Інтеграція Chromecast-стрімінгу в мобільний додаток

Користувачі дедалі частіше очікують, що контент із мобільного застосунку можна миттєво вивести на великий екран. Ми розробляємо інтеграцію Chromecast-стримінгу, беручи на себе весь цикл — від налаштування Google Cast SDK до кастомного Receiver. Наша команда реалізує проєкт під ключ із подальшою підтримкою, забезпечуючи надійну роботу та відповідність вимогам магазинів застосунків.

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

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

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

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

Позначимо: коли користувач натискає Cast, контент має з'явитися на великому екрані миттєво. Але реалізація цієї кнопки — нетривіальне завдання: інтеграція Google Cast SDK, налаштування сесії, обробка втрати з'єднання, керування паузою та перемотуванням. Пристрої мають бути в одній мережі, а додаток — пройти App Store Review Guidelines (Section 4.2). Ми вирішуємо це за вас. Наш досвід — 5+ років у мобільній розробці та 15+ проєктів з Chromecast-стрімінгом. Використовуємо перевірені патерни, гарантуємо стабільну роботу на Android та iOS. Час виходу на ринок скорочується на 30% завдяки готовим компонентам. Економія бюджету на старті може сягати 40% при використанні Default Media Receiver.

Як реалізувати Chromecast-стрімінг за 2–3 дні?

Найшвидший шлях — використати Default Media Receiver. Телефон (Sender) надсилає URL контенту, Receiver тягне потік напряму. Не потрібно писати веб-додаток. Керування відтворенням — через Google Cast SDK. Базова інтеграція займає 2–3 дні. Для кастомних вимог (інтерфейс, DRM, аналітика) розробляємо власний Receiver — додається ще 2–3 дні. Зниження витрат на розробку порівняно з самостійною реалізацією становить до 50%.

Підключення Google Cast SDK

Android. com.google.android.gms:play-services-cast-framework:latest у build.gradle — стандартний пакет для Chromecast Android. Ініціалізація в Application:

class App : Application() {
    override fun onCreate() {
        super.onCreate()
        val options = CastOptions.Builder()
            .setReceiverApplicationId(CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID)
            .build()
        CastContext.getSharedInstance(this, executor).addOnSuccessListener { castContext ->
            // Cast контекст готов
        }
    }
}

DEFAULT_MEDIA_RECEIVER_APPLICATION_ID — стандартний Default Media Receiver, відтворює HLS, DASH, MP4, MP3. Для кастомного — реєструємо додаток у Google Cast Developer Console та використовуємо свій App ID. Докладніше про налаштування CastContext див. у документації Google Cast.

iOS. pod 'google-cast-sdk' або GoogleCast через SPM — основний SDK для Chromecast iOS. API аналогічно Android.

Кнопка Cast в UI

Google Cast SDK надає готові кнопки: UICastButton (iOS) та MediaRouteButton (Android). Вони показують список пристроїв і змінюють вигляд при підключенні:

// В меню toolbar
override fun onCreateOptionsMenu(menu: Menu): Boolean {
    menuInflater.inflate(R.menu.menu_player, menu)
    CastButtonFactory.setUpMediaRouteButton(this, menu, R.id.media_route_menu_item)
    return true
}

Для Jetpack Compose — AndroidView з MediaRouteButton.

Запуск відтворення на Receiver

val castSession = CastContext.getSharedInstance(context).sessionManager.currentCastSession
val remoteClient = castSession?.remoteMediaClient ?: return
val mediaMetadata = MediaMetadata(MediaMetadata.MEDIA_TYPE_MOVIE).apply {
    putString(MediaMetadata.KEY_TITLE, "Назва фільму")
    putString(MediaMetadata.KEY_SUBTITLE, "Опис")
    addImage(WebImage(Uri.parse(thumbnailUrl)))
}
val mediaInfo = MediaInfo.Builder(streamUrl)
    .setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
    .setContentType("application/x-mpegURL") // HLS, або video/mp4 для MP4
    .setMetadata(mediaMetadata)
    .build()
val loadOptions = MediaLoadRequestData.Builder()
    .setMediaInfo(mediaInfo)
    .setAutoplay(true)
    .setCurrentTime(startPositionMs.toLong())
    .build()
remoteClient.load(loadOptions)

Керування відтворенням

RemoteMediaClient — центральний об'єкт для відтворення на Chromecast: play(), pause(), seek(position), setStreamVolume(volume). Стан відстежується через Callback:

remoteClient.registerCallback(object : RemoteMediaClient.Callback() {
    override fun onStatusUpdated() {
        val status = remoteClient.mediaStatus ?: return
        val position = status.streamPosition
        val isPlaying = status.playerState == MediaStatus.PLAYER_STATE_PLAYING
        updateUI(isPlaying, position)
    }
})

Mini Controller та Expanded Controller — інтеграція chromecast стрімінгу

Вбудовані компоненти: MiniControllerFragment — смужка керування внизу, ExpandedControllerActivity — повноекранний плеєр. Підключаються декларативно — мінімум коду. Ці компоненти автоматично показують стан підключення до Chromecast пристрою.

Чому варто використовувати кастомний Receiver?

Default Receiver покриває 80% завдань. Але якщо потрібен унікальний інтерфейс, субтитри Subrip, аналітика або DRM (Widevine), без кастомного не обійтися. Ми створюємо веб-додаток на HTML5/JavaScript. Кастомний Receiver збільшує час розробки на 70%, але дає повний контроль. У 4 рази більше можливостей для кастомізації порівняно з Default.

Характеристика Default Receiver Кастомний Receiver
Час інтеграції 2–3 дні 5–6 днів
Кастомізація UI Обмежена Повний контроль
Підтримка DRM Ні Так (Widevine)
Аналітика Ні Збір будь-яких метрик
Складність Мінімальна Вимагає веб-розробки

Основні етапи інтеграції

Етап Тривалість Опис
Аналіз вимог 1 день Визначення формату контенту, DRM, кастомізації
Вибір Receiver 0.5 дня Default або кастомний, реєстрація в консолі Google Cast
Інтеграція SDK 1 день Додавання залежностей, ініціалізація CastContext
Реалізація кнопки Cast 0.5 дня Налаштування MediaRouteButton, обробка сесії
Керування відтворенням 1 день Play/pause/seek через RemoteMediaClient
Тестування 1 день На реальних пристроях (Chromecast, Android TV, Google Nest)
Деплой 0.5 дня Публікація в App Store та Google Play з урахуванням політик

Сесія Cast та перепідключення

При втраті Wi-Fi CastSession переходить у стан TEMPORARILY_DISCONNECTED, через 3 хвилини — DISCONNECTED. SessionManagerListener.onSessionSuspended / onSessionResumed обробляють перепідключення, відновлюємо відтворення зі збереженої позиції. При поверненні в додаток Cast SDK автоматично відновлює сесію через CastContext.sessionManager.currentCastSession.

Chromecast на React Native та Flutter

React Native: react-native-google-cast — неофіційний враппер. Стабільний для базових сценаріїв, розширений функціонал вимагає нативного коду. Flutter: офіційного пакету немає, flutter_google_cast нестабільний. Для production рекомендуємо нативну реалізацію через MethodChannel. Нативні рішення в 2 рази надійніші за кросплатформенні враппери. Трансляція на телевізор через Cast також доступна з веб-в'ю, але керування обмежене.

Додаткові можливості кастомного Receiver

Кастомний Receiver дозволяє додати власну обробку помилок, інтеграцію з analytics (Google Analytics, Firebase) та підтримку нестандартних форматів (наприклад, live-потоки із затримкою). Докладніше в офіційній документації.

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

  • Інтеграція Google Cast SDK на Android (Kotlin) та iOS (Swift)
  • Кнопка Cast та кастомні UI: MiniController, Expanded Controller
  • Керування відтворенням (play/pause/seek/volume)
  • Обробка сесій, перепідключення, збереження позиції
  • Тестування на реальних пристроях (Chromecast, Android TV, Google Nest)
  • Документація та доступ до вихідного коду
  • Підтримка після деплою (1 місяць)

Терміни та вартість

Терміни варіюються від 2 до 6 днів. Вартість розраховується індивідуально після аудиту вашого проєкту. Зв'яжіться з нами, щоб отримати консультацію та попередню оцінку. Замовте Chromecast-стрімінг під ключ — ми гарантуємо стабільну роботу на всіх пристроях. Отримайте консультацію та переконайтеся, що ваша трансляція на телевізор працює бездоганно.

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

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

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