Google Cast: kulcsfontosságú fogalmak, streamelési protokoll és Cast SDK

Szerző: IT Sectr Megjelenés: 2026-04-30 Olvasási idő: 10 perc

Google Cast — a Google technológiája multimédiás tartalmak streamelésére mobileszközökről televíziókra és audiorendszerekre a Cast protokollon keresztül. Az SDK lehetővé teszi a fejlesztők számára, hogy Chromecast-támogatást adjanak Android és iOS alkalmazásokhoz, videókat, audiót és képeket nagy képernyőkre továbbítva. A Google Cast Developer Documentation, 2025 szerint világszerte több mint 100 millió Chromecast-eszközt adtak el, és a Cast SDK-t több mint 40.000 alkalmazásban használják.

Főbb pontok

  • Google Cast — protokoll és SDK tartalmak streamelésére mobileszközökről televíziókra és hangszórókra
  • Feladó (Sender) — a mobilalkalmazás, amely tartalmat küld a Cast-eszközre
  • Veveő (Receiver) — a televízión futó alkalmazás (Chromecast), amely fogadja és lejátssza a tartalmat
  • CAF SDK — Cast Application Framework, egyszerűsített API a Cast integrációjához (a Google által ajánlott)
  • Media Streams — HLS, DASH és MP4 streamelés Casten keresztül lejátszásvezérléssel

Mi az a Google Cast?

Google Cast — egy vezeték nélküli multimédia-átviteli protokoll, amelyet a Google fejlesztett ki mobileszközökről, laptopokról és tabletekről televíziókra, hangszórókra és más képernyőkre történő streameléshez. Az AirPlay-től (Apple) vagy a Miracast-tól eltérően a Cast a „URL küldése” (send-to-device) modellt használja: a mobilalkalmazás elküldi a tartalom URL-jét a Chromecastnak, és az eszköz maga tölti be és játssza le a streame-t, nem terhelve a telefont.

A Google Cast fő előnye a közvetlen streameléssel (screen mirroring) szemben — az energiahatékonyság. A lejátszás megkezdése után a telefon csak távirányítóként működik: a felhasználó minimalizálhatja az alkalmazást, lezárhatja a képernyőt vagy átválthat egy másik alkalmazásba — a video tovább játszódik a televízión. A Google (2025) adatai szerint a Cast 80%-kal kevesebb energiát fogyaszt a telefonon a mirroring megoldásokhoz képest.

A Google Cast nem csak a Chromecastot támogatja, hanem a Sony, TCL, Philips, Hisense és más gyártók televízióiba épített Cast-veveőket is, amelyek Google TV-vel vagy Android TV-vel rendelkeznek. A Cast audiorendszerekben (Nest Audio, Cast-kompatibilis Sonos) és Chromecast Audio-ban is támogatott. A Cast protokoll Wi-Fi-n (2,4/5 GHz) keresztül működik, és megköveteli, hogy a küldő eszköz és a veveő ugyanabban a hálózatban legyen.

Cast architektúra: Feladó, Veveő és protokollok

A Google Cast architektúra három komponensből áll: Feladó (mobilalkalmazás), Veveő (alkalmazás a Chromecaston/televízión) és szállítási protokoll. A Feladó a Cast SDK-t használja az eszközök hálózatban történő észlelésére, kapcsolat létesítésére és lejátszási parancsok küldésére. A Veveő egy webalkalmazás (HTML5 + CSS + JavaScript), amely a Chromecast böngészőjében fut, betölti és lejátssza a tartalmat.

A Google Cast protokoll a DIAL (Discovery and Launch) alapokra épül az eszközök észleléséhez és egy saját protokollra a WebSocketen keresztül a lejátszás vezérléséhez. A DIAL az SSDP-t (Simple Service Discovery Protocol) használja a Cast-eszközök kereséséhez a helyi hálózatban. Az észlelés után a Feladó WebSocket-kapcsolatot létesít a Veveővel a 8008-as vagy 8009-es porton keresztül, és JSON formátumban küld parancsokat: LOAD, PLAY, PAUSE, STOP, SEEK.

KomponensPlatformTechnológia
Feladó (Sender)Android / iOS / ChromeCast SDK (Java/Kotlin, Swift, JS)
Alapértelmezett Veveő (Default Receiver)Chromecast / Android TVBeépített (beállítás a Google Cast Console-on keresztül)
Egyéni Veveő (Custom Receiver)Chromecast / Android TVWebalkalmazás (HTML5, CAF Receiver JS)
ProtokollHelyi Wi-Fi hálózatWebSocket + JSON + DIAL/SSDP
Média szállításInternetHLS, DASH, MP4 (közvetlen betöltés a Chromecast által)

Cast v2 protokoll a lejátszás vezérléséhez

Feladó nem magát a tartalmat küldi a Veveőnek, hanem az URL-t (media URL) és a metaadatokat (név, kép, feliratok). A Veveő önállóan tölti be a tartalmat az URL-ről, ami lehetővé teszi, hogy a telefon ne pazarolja az akkumulátort az adatátvitelre. A lejátszás megkezdése után a Feladó szünet, visszatekerés, hangerőszabályzás parancsokat küldhet és lejátszási állapotot kaphat a Cast Protocol v2-n keresztül.

Cast Application Framework (CAF): gyors integráció

Cast Application Framework (CAF) — egy egyszerűsített API a Google-tól a Cast mobilalkalmazásokba történő integrálására, amelyet 2018-ban vezettek be. A CAF felváltja a régi Cast SDK-t (CastCompanionLibrary), és kész UI-komponenseket biztosít: Cast Button (eszközészlelés ikon), Mini Controller (mini lejátszó a képernyő alján) és Expanded Controller (teljes képernyős távirányító). A CAF támogatja az Androidot, iOS-t, Flutter-t és React Native-t.

A CAF használatához a fejlesztőnek nem kell saját Veveőt írnia — a Google biztosítja az Alapértelmezett Veveőt (Default Receiver), amely automatikusan betölti és lejátssza a tartalmat. Az Alapértelmezett Veveő támogatja a HLS, DASH, MP4, WebM, MP3, képek és feliratok formátumokat. A Veveő konfigurálása a Google Cast Console-ban történik — elegendő megadni a tartalom URL-jét, és az Alapértelmezett Veveő elvégzi a többit. Egyéni Veveő csak nem szabványos forgatókönyvek esetén szükséges: saját interfész a televízión, DRM-támogatás, lejátszási sorok.

kotlin
// CAF Receiver opciók konfigurálása
val receiverOptions = CastReceiverOptions.Builder(context)
    .setReceiverApplicationId(
        CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID
    )
    .build()

// Cast kontextus csatlakoztatása
val castContext = CastContext.getSharedInstance(context)
castContext.setReceiverOptions(receiverOptions)

Cast Connect: tesztelés fizikai eszköz nélkül

CAF automatikusan kezeli a kapcsolat életciklusát: eszközök észlelése a Cast Button-on keresztül, kapcsolat létesítése, média betöltése, szünet átmeneti kapcsolatvesztés esetén és újracsatlakozás. A CAF támogatja továbbá a lejátszási sorokat (media queues) lejátszási listákhoz és a „Cast” gombot a zárolási képernyőn és az értesítési központban (Android). Minimális verzió: Android 5.0 (API 21), iOS 14+.

Média streamelés: HLS, DASH és MP4 Chromecasten

Google Cast támogatja a főbb streame-lési formátumokat: HLS (HTTP Live Streaming) az Apple-től, DASH (Dynamic Adaptive Streaming over HTTP) és progresszív MP4. A Chromecast automatikusan kiválasztja az optimális videóminőséget az internetkapcsolat sebessége alapján (adaptív bitráta). HLS és DASH esetén a Chromecast valós időben vált a streame-k között a lejátszás megszakítása nélkül. A HLS a Chromecast firmware 1.28+ verziójától támogatott.

A Google Cast-on keresztüli streameléshez a tartalomnak nyilvános URL-en (HTTP/HTTPS) keresztül elérhetőnek kell lennie — a Chromecast közvetlenül a szerverről tölti be a tartalmat, nem a telefonról. DRM (Digital Rights Management) a Widevine-en keresztül támogatott: a Chromecast támogatja a Widevine L3-at (minden eszköz) és L1-et (egyes modellek, pl. Chromecast with Google TV). A DRM-hez Egyéni Veveőre van szükség Shaka Player vagy ExoPlayer integrációval. A Google szerint a Chromecast with Google TV támogatja a 4K HDR-t Widevine L1-gyel a Netflix, Disney+ és más szolgáltatások számára.

kotlin
// Média betöltése Chromecastre CAF-on keresztül
val mediaInfo = MediaInfo.Builder(Uri.parse(videoUrl))
    .setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
    .setContentType("video/mp4")
    .setMetadata(MediaMetadata(MediaMetadata.MEDIA_TYPE_MOVIE)
        .putString(MediaMetadata.KEY_TITLE, title)
        .putString(MediaMetadata.KEY_SUBTITLE, subtitle))
    .build()

CastSession.RemoteMediaClient
    ?.load(mediaInfo, autoPlay = true)

Felirat formátumok: A Chromecast támogatja a TTML, WebVTT és CEA-608 formátumokat. A feliratok a MediaInfo részeként kerülnek továbbításra a MediaTrack-en keresztül. A Chromecast támogatja továbbá a képek aszinkron betöltését (fotók) a képek közötti lapozás lehetőségével a Cast Queue API-n keresztül. Audio esetén a Chromecast MP3, AAC, FLAC, WAV és OGG formátumokat támogat. Az audio streamelés a Google Cast-on keresztül Chromecast Audio-n és Cast hangszórókon támogatott.

Cast UI komponensek: Cast Button és Mini Controller

Cast Button — a Google Cast SDK legfontosabb UI komponense, amely megjeleníti a Cast ikont és automatikusan változtatja az állapotát: inaktív (nincs eszköz), elérhető (eszközök találva), csatlakoztatva (aktív munkamenet). A Cast Button megnyomásakor megnyílik az eszközválasztó párbeszédablak. A komponens a MediaRouteActionProvider (Android) vagy a GCKUICastButton (iOS) segítségével érhető el. A Cast Button csak akkor látható, ha Cast-eszközök elérhetők a hálózatban — a CAF automatikusan elrejti a gombot, ha nincsenek eszközök.

Mini Controller — panel a képernyő alján, amely megjeleníti a tartalom nevét, borítóját, play/pause gombokat és a munkamenet bezárásának gombját. A Mini Controller automatikusan megjelenik, amikor a Cast-munkamenet aktív és a felhasználó a lejátszáshoz nem kapcsolódó képernyőn tartózkodik. A CAF kész MiniControllerFragment-et biztosít Androidhoz, amely beágyazható a layout-ba. Alapértelmezés szerint a Mini Controller a képernyő alján található, de bármilyen pozícióba konfigurálható.

kotlin
// Mini Controller testreszabása stílusokkal
// styles.xml
// <style name="CastMiniControllerStyle"
//     parent="Theme.GoogleCast">
//     <item name="castMiniBackgroundColor">#FF0000</item>
//     <item name="castShowImageThumbnail">true</item>
// </style>

// Mini Controller programozott vezérlése
val miniController = findViewById<MiniControllerFragment>(
    R.id.miniController
)
miniController.setVisibility(
    isCastSessionActive()
)

Expanded Controller — teljes képernyős távirányító a televízión történő lejátszás vezérléséhez, amely a Mini Controller megnyomásakor nyílik meg. Az Expanded Controller megjeleníti: nevet, leírást, borítót, előrehaladási sávot visszatekerési lehetőséggel, play/pause/stop gombokat, számlistát (ha van sor), hangerőszabályzót és leválasztó gombot. A CAF kész ExpandedControllerActivity-t biztosít, amely automatikusan elindul. Ha egyéni interfészre van szükség — bővítse ki az alap ExpandedControllerActivity-t.

Egyéni Veveő: saját interfész a televízión

Egyéni Veveő (Custom Receiver) — egy webalkalmazás (HTML5 + CSS + JavaScript), amely a Chromecastra töltődik be a Cast-munkamenet indításakor. Az Alapértelmezett Veveővel ellentétben az egyéni veveő teljes mértékben lehetővé teszi a tartalom megjelenésének vezérlését a televízión: háttérképek, animációk, egyéni vezérlőelemek, márkalogó. Az Egyéni Veveő regisztrálása a Google Cast Console-ban történik, és egyedi Application ID-t kap.

Az Egyéni Veveő fejlesztése JavaScript-ben történik a Cast Receiver Framework (CAF Receiver) segítségével. A CAF Receiver API-t biztosít a Feladótól érkező üzenetek feldolgozásához, a média streamek kezeléséhez, a sorok feldolgozásához és a DRM-integrációhoz. A Veveő a Chromecast elkülönített böngésző környezetében (WebKit) működik, korlátozott DOM-hozzáféréssel. Minimális követelmények: HTML5, CSS3, JavaScript ES6. A Veveő HTTPS-szerveren van tárolva.

js
// Alap Egyéni Veveő CAF-on
const context = cast.framework.CastReceiverContext.getInstance()
const playerManager = context.getPlayerManager()

playerManager.setMessageInterceptor(
    cast.framework.messages.MessageType.LOAD,
    (loadData) => {
        // Média betöltés egyéni feldolgozása
        console.log("Loading media:", loadData.media.contentId)
        return loadData
    }
)

context.start()

// Egyéni üzenetek kezelése a Feladótól
context.addCustomMessageListener("urn:x-cast:custom", (event) => {
    console.log("Custom data:", event.data)
})

Az Egyéni Veveő fejlesztése és telepítése

Az Egyéni Veveőt valódi eszközön kell tesztelni a Cast Developer Console segítségével. A Google az Alapértelmezett Veveő használatát ajánlja szabványos forgatókönyvekhez, az egyéni Veveőt pedig csak akkor, ha saját interfészre van szükség a televízión, DRM-támogatásra (Widevine) vagy egyéni logikával rendelkező lejátszási sorokra. Veveő nem fér hozzá a Feladó oldalának DOM-jához, és nem hajthatja végre a Feladó által küldött JavaScriptet (biztonság).

Kódpélda: Google Cast integráció Androidon

Teljes példa a Google Cast integrációra egy Android-alkalmazásban a CAF használatával. Az alkalmazás videót játszik le, és lehetővé teszi annak Chromecastra streamelését a Cast Button segítségével. A kód magában foglalja a CastOptions konfigurálását, a CastContext inicializálását, a kapcsolat kezelését és a média betöltését a Cast-eszközre.

kotlin
class CastPlayerActivity : AppCompatActivity() {

    private lateinit var castContext: CastContext

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setupCast()
        setContentView(R.layout.activity_player)
    }

    private fun setupCast() {
        CastOptions.Builder()
            .setReceiverApplicationId(
                CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID
            )
            .build()
            .let {
                castContext = CastContext.getSharedInstance(this)
            }
    }

    fun castVideo(videoUrl: String, title: String) {
        val mediaInfo = MediaInfo.Builder(Uri.parse(videoUrl))
            .setContentType("video/mp4")
            .setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
            .setMetadata(MediaMetadata(MediaMetadata.MEDIA_TYPE_MOVIE)
                .putString(MediaMetadata.KEY_TITLE, title))
            .build()

        castContext.sessionManager.getCurrentCastSession()
            ?.remoteMediaClient
            ?.load(mediaInfo)
    }
}

A Google Cast teszteléséhez használjon virtuális Cast-eszközt a Chrome DevTools-on (Cast fül) vagy fizikai Chromecastot. A Google teszt Application ID-t biztosít — CC1AD845 (Default Media Receiver). A közzététel előtt regisztrálja alkalmazását a Google Cast Console-ban és szerezzen éles Application ID-t. A Cast SDK Google Play Services 21.0.0+ és Android 5.0+ verziót igényel.

Gyakori problémák és Cast hibakeresés

Az első gyakori probléma — a Cast Button nem jelenik meg. Okok: az eszközök nincsenek ugyanabban a Wi-Fi hálózatban, a Chromecast nem támogatja a DIAL-t (régi firmware), vagy a Wi-Fi észlelés ki van kapcsolva a telefonon. Megoldás: ellenőrizze, hogy a telefon és a Chromecast ugyanahhoz a hálózathoz csatlakozik-e (2,4 GHz vagy 5 GHz). A Google Cast nem működik vendég Wi-Fi hálózatokon, VPN-en vagy ügyfél elkülönítéssel rendelkező vállalati hálózatokon. Használja a Cast Connect-et fizikai eszköz nélküli teszteléshez.

A második probléma — kapcsolat megszakadása lejátszás közben. A Chromecast elveszítheti a Wi-Fi kapcsolatot gyenge jel, csatorna túlterhelése vagy mikrohullámú sütőből származó interferencia (2,4 GHz) miatt. Megoldás: helyezze a Chromecastot közelebb a routerhez, használjon 5 GHz-et (ha támogatott), konfiguráljon QoS-t a Chromecast forgalmához. Az alkalmazásban kezelje a onRemoteMediaPlayerStatusUpdated callback-t IDLE állapottal és hibaokkal — kapcsolatvesztés esetén jelenítsen meg egy értesítést és ajánlja fel az újracsatlakozást.

A harmadik probléma — a tartalom nem játszódik le a Chromecaston. Ellenőrizze: a tartalom URL-je elérhető az internetről (a Chromecast közvetlenül tölti be a tartalmat, nem a telefonon keresztül), a formátumot támogatja a Chromecast, nincs CORS-blokkolás (.m3u8 és .mpd esetén). Ha az Alapértelmezett Veveőt használja, győződjön meg arról, hogy az Application ID helyes. Egyéni Veveő esetén ellenőrizze, hogy az alkalmazás HTTPS-en van tárolva. Használja a Cast SDK Loggert a hibakereséshez: CastContext.getSharedInstance().setCastLogger(...).

Gyakran Ismételt Kérdések

Miben különbözik a Google Cast az AirPlay-től és a Miracast-tól?

Google Cast a „URL küldése” modellt használja — a telefon egy linket küld a Chromecastnak a tartalomhoz, amely közvetlenül betöltődik. AirPlay (Apple) — hasonló protokoll az Apple ökoszisztémához. Miracast — közvetlen képernyőátvitel (screen mirroring), amely terheli a telefont. A Cast 80%-kal kevesebb telefonenergiát fogyaszt, és lehetővé teszi az alkalmazás minimalizálását a lejátszás megállítása nélkül.

Szükséges-e Chromecast a Google Cast működéséhez?

Google Cast nem csak Chromecaston működik, hanem a beépített Google TV-vel, Android TV-vel rendelkező televíziókon, valamint Cast-támogatással rendelkező audiorendszereken (Nest Audio, Sonos) is. Fejlesztéshez és teszteléshez használhat virtuális Cast-eszközt a Chrome DevTools-on keresztül. A Cast alkalmazásba történő integrálásához fizikai eszköz nem szükséges — használja a Cast Connect-et emulációhoz.

Támogatja a Google Cast a 4K-t és a HDR-t?

Igen, a Chromecast with Google TV (2020) és újabb modellek támogatják a 4K HDR-t Dolby Vision, HDR10 és HDR10+ formátumokkal. A szabványos Chromecast (3. generáció) 1080p 60fps-t támogat. Chromecast Ultra — 4K HDR. A 4K streameléshez legalább 25 Mbps internetsebesség és Widevine L1 támogatás szükséges DRM-tartalomhoz (Netflix, Disney+).

Hogyan lehet programozottan leállítani egy Cast-munkamenetet?

A munkamenet leállításához hívja meg a CastSession.endSession(boolean stopCasting) metódust: true paraméterrel, ha le szeretné állítani a lejátszást a televízión, vagy false-szal, ha csak le szeretné választani a telefont. Használhatja a stop() metódust is a RemoteMediaClient-en. A felhasználó a Cast Button vagy a Mini Controller leválasztó gombjának megnyomásával is leállíthatja a munkamenetet.

Lehet-e egyedi adatokat küldeni a Google Cast-on keresztül?

Igen, egyedi üzenetek (custom messages) segítségével. A Feladó üzenetet küld egy namespace-en (pl. urn:x-cast:custom.namespace) keresztül tetszőleges JSON objektummal. A Veveő az addCustomMessageListener segítségével dolgozza fel az üzenetet. Az egyedi üzenetek csak Egyéni Veveővel támogatottak — az Alapértelmezett Veveő nem dolgoz fel egyedi namespace-eket. Maximális üzenetméret — 64 KB.

Összefoglalás

  • Google Cast — protokoll tartalmak streamelésére mobileszközökről televíziókra Chromecaston és Android TV-n keresztül
  • Architektúra — Feladó (alkalmazás) elküldi a tartalom URL-jét, Veveő (Chromecast) betölti és lejátssza
  • CAF SDK — Cast Application Framework kész Cast Button, Mini Controller és Expanded Controller komponensekkel
  • Formátumok — HLS, DASH, MP4, WebM, MP3, AAC, FLAC adaptív bitrátával és feliratokkal
  • Alapértelmezett Veveő — beépített Google veveő gyors integrációhoz anélkül, hogy kódot kellene írni a televízión
  • Egyéni Veveő — HTML5/JS webalkalmazás az interfész és a DRM testreszabásához a televízión
  • Hibakeresés — ellenőrizze a Wi-Fi hálózatot, a tartalom URL-jét és a formátumtámogatást; használja a Cast SDK Loggert

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is