Google Cast: Grundkonzepte, Streaming-Protokoll und Cast SDK

Autor: IT Sectr Veröffentlicht: 2026-04-30 Lesezeit: 10 Min.

Google Cast ist eine Technologie von Google zum Streamen von Multimedia-Inhalten von mobilen Geräten auf Fernseher und Audiosysteme über das Cast-Protokoll. Das SDK ermöglicht Entwicklern, Chromecast-Unterstützung zu Android- und iOS-Anwendungen hinzuzufügen und Videos, Audios und Bilder auf große Bildschirme zu übertragen. Laut Google Cast Developer Documentation, 2025 wurden weltweit über 100 Millionen Chromecast-Geräte verkauft, und das Cast SDK wird in über 40.000 Anwendungen eingesetzt.

Wichtige Punkte

  • Google Cast — ein Protokoll und SDK zum Streamen von Inhalten von mobilen Geräten auf Fernseher und Lautsprecher
  • Sender — die mobile Anwendung, die Inhalte an ein Cast-Gerät sendet
  • Receiver — die Anwendung auf dem Fernseher (Chromecast), die Inhalte empfängt und wiedergibt
  • CAF SDK — Cast Application Framework, eine vereinfachte API für die Cast-Integration (von Google empfohlen)
  • Media Streams — HLS-, DASH- und MP4-Streaming über Cast mit Wiedergabesteuerung

Was ist Google Cast?

Google Cast ist ein von Google entwickeltes drahtloses Multimedia-Übertragungsprotokoll zum Streamen von mobilen Geräten, Laptops und Tablets auf Fernseher, Lautsprecher und andere Bildschirme. Anders als AirPlay (Apple) oder Miracast verwendet Cast das „URL senden“-Modell (send-to-device): Die mobile App sendet eine Inhalts-URL an Chromecast, und das Gerät selbst lädt den Stream und spielt ihn ab, ohne das Telefon zu belasten.

Der Hauptvorteil von Google Cast gegenüber direktem Streaming (Screen Mirroring) ist die Energieeffizienz. Nach dem Start der Wiedergabe fungiert das Telefon nur noch als Fernbedienung: Der Benutzer kann die App minimieren, den Bildschirm sperren oder zu einer anderen App wechseln — das Video wird weiterhin auf dem Fernseher abgespielt. Laut Google (2025) verbraucht Cast 80% weniger Strom auf dem Telefon im Vergleich zu Mirroring-Lösungen.

Google Cast unterstützt nicht nur Chromecast, sondern auch integrierte Cast-Empfänger in Fernsehern von Sony, TCL, Philips, Hisense und anderen Herstellern mit Google TV oder Android TV. Cast wird auch in Audiosystemen (Nest Audio, Sonos mit Cast) und Chromecast Audio unterstützt. Das Cast-Protokoll funktioniert über Wi-Fi (2,4/5 GHz) und erfordert, dass sich Sender und Empfänger im selben Netzwerk befinden.

Cast-Architektur: Sender, Receiver und Protokolle

Die Google Cast-Architektur besteht aus drei Komponenten: Sender (mobile App), Receiver (App auf Chromecast/Fernseher) und dem Transportprotokoll. Der Sender verwendet das Cast SDK, um Geräte im Netzwerk zu erkennen, eine Verbindung herzustellen und Wiedergabebefehle zu senden. Der Receiver ist eine Webanwendung (HTML5 + CSS + JavaScript), die im Chromecast-Browser läuft und Inhalte lädt und abspielt.

Das Google Cast-Protokoll basiert auf DIAL (Discovery and Launch) zur Geräteerkennung und einem proprietären Protokoll über WebSocket zur Wiedergabesteuerung. DIAL verwendet SSDP (Simple Service Discovery Protocol), um Cast-Geräte im lokalen Netzwerk zu finden. Nach der Erkennung stellt der Sender eine WebSocket-Verbindung mit dem Receiver auf Port 8008 oder 8009 her und sendet Befehle im JSON-Format: LOAD, PLAY, PAUSE, STOP, SEEK.

KomponentePlattformTechnologie
SenderAndroid / iOS / ChromeCast SDK (Java/Kotlin, Swift, JS)
Default ReceiverChromecast / Android TVEingebaut (konfiguriert über Google Cast Console)
Custom ReceiverChromecast / Android TVWebanwendung (HTML5, CAF Receiver JS)
ProtokollLokales Wi-Fi-NetzwerkWebSocket + JSON + DIAL/SSDP
MedientransportInternetHLS, DASH, MP4 (direktes Chromecast-Laden)

Cast-Protokoll v2 zur Wiedergabesteuerung

Der Sender sendet an den Receiver nicht den Inhalt selbst, sondern eine URL (Media-URL) und Metadaten (Titel, Bild, Untertitel). Der Receiver lädt den Inhalt unabhängig von der URL, was den Akku des Telefons durch Datenübertragung schont. Nach dem Start der Wiedergabe kann der Sender Pausen-, Zurückspul- und Lautstärkebefehle senden und den Wiedergabestatus über Cast Protocol v2 empfangen.

Cast Application Framework (CAF): schnelle Integration

Cast Application Framework (CAF) ist eine vereinfachte API von Google zur Integration von Cast in mobile Anwendungen, die 2018 eingeführt wurde. CAF ersetzt das veraltete Cast SDK (CastCompanionLibrary) und bietet gebrauchsfertige UI-Komponenten: Cast Button (Geräteerkennungssymbol), Mini Controller (Mini-Player am unteren Bildschirmrand) und Expanded Controller (Vollbild-Fernbedienung). CAF unterstützt Android, iOS, Flutter und React Native.

Zur Verwendung von CAF muss der Entwickler keinen eigenen Receiver schreiben — Google stellt einen Default Receiver bereit, der Inhalte automatisch lädt und abspielt. Der Default Receiver unterstützt HLS, DASH, MP4, WebM, MP3, Bilder und Untertitel. Die Receiver-Konfiguration erfolgt in der Google Cast Console — geben Sie einfach die Inhalts-URL an, und der Default Receiver erledigt den Rest. Ein benutzerdefinierter Receiver ist nur für nicht standardmäßige Szenarien erforderlich: benutzerdefinierte TV-Oberfläche, DRM-Unterstützung, Wiedergabelisten.

kotlin
// CAF Receiver-Optionen konfigurieren
val receiverOptions = CastReceiverOptions.Builder(context)
    .setReceiverApplicationId(
        CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID
    )
    .build()

// Cast Context verbinden
val castContext = CastContext.getSharedInstance(context)
castContext.setReceiverOptions(receiverOptions)

Cast Connect: Testen ohne physisches Gerät

CAF verwaltet automatisch den Verbindungslebenszyklus: Geräteerkennung über Cast Button, Verbindungsaufbau, Medienladen, Pause bei vorübergehendem Verbindungsverlust und Wiederherstellung der Verbindung. CAF unterstützt auch Wiedergabelisten (Media Queues) für Playlists und den Cast-Button auf dem Sperrbildschirm und im Benachrichtigungscenter (Android). Mindestversion: Android 5.0 (API 21), iOS 14+.

Media-Streaming: HLS, DASH und MP4 auf Chromecast

Google Cast unterstützt die wichtigsten Streaming-Formate: HLS (HTTP Live Streaming) von Apple, DASH (Dynamic Adaptive Streaming over HTTP) und progressives MP4. Chromecast wählt automatisch die optimale Videoqualität basierend auf der Internetverbindungsgeschwindigkeit (adaptiver Bitrate). Bei HLS und DASH wechselt Chromecast die Streams in Echtzeit, ohne die Wiedergabe zu unterbrechen. HLS wird ab Chromecast-Firmware-Version 1.28+ unterstützt.

Für Streaming über Google Cast muss der Inhalt über eine öffentliche URL (HTTP/HTTPS) zugänglich sein — Chromecast lädt den Inhalt direkt vom Server, nicht vom Telefon. DRM (Digital Rights Management) wird über Widevine unterstützt: Chromecast unterstützt Widevine L3 (alle Geräte) und L1 (einige Modelle, z. B. Chromecast with Google TV). Für DRM ist ein benutzerdefinierter Receiver mit Shaka Player oder ExoPlayer-Integration erforderlich. Laut Google unterstützt Chromecast with Google TV 4K HDR mit Widevine L1 für Netflix, Disney+ und andere Dienste.

kotlin
// Medien über CAF auf Chromecast laden
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)

Untertitelformate: Chromecast unterstützt TTML, WebVTT und CEA-608. Untertitel werden als Teil von MediaInfo über MediaTrack übergeben. Chromecast unterstützt auch asynchrones Laden von Bildern (Fotos) mit der Möglichkeit, zwischen Bildern über die Cast Queue API zu wischen. Für Audio unterstützt Chromecast MP3, AAC, FLAC, WAV und OGG. Audiostreaming über Google Cast wird auf Chromecast Audio und Cast-Lautsprechern unterstützt.

Cast UI-Komponenten: Cast Button und Mini Controller

Cast Button ist eine Schlüsselkomponente der Benutzeroberfläche des Google Cast SDK, die das Cast-Symbol anzeigt und automatisch den Zustand ändert: inaktiv (keine Geräte), verfügbar (Geräte gefunden), verbunden (aktive Sitzung). Beim Klicken öffnet der Cast Button einen Dialog zur Geräteauswahl. Die Komponente ist über MediaRouteActionProvider (Android) oder GCKUICastButton (iOS) verfügbar. Der Cast Button sollte nur sichtbar sein, wenn Cast-Geräte im Netzwerk verfügbar sind — CAF blendet die Schaltfläche automatisch aus, wenn keine Geräte gefunden werden.

Mini Controller ist ein Panel am unteren Bildschirmrand, das den Titel des Inhalts, das Cover, die Play/Pause-Tasten und die Schaltfläche zum Schließen der Sitzung anzeigt. Der Mini Controller erscheint automatisch, wenn eine Cast-Sitzung aktiv ist und der Benutzer sich auf einem Bildschirm befindet, der nicht mit der Wiedergabe zusammenhängt. CAF bietet ein fertiges MiniControllerFragment für Android, das in das Layout eingebettet wird. Standardmäßig befindet sich der Mini Controller am unteren Bildschirmrand, kann aber an beliebiger Position platziert werden.

kotlin
// Mini Controller über Styles anpassen
// styles.xml
// <style name="CastMiniControllerStyle"
//     parent="Theme.GoogleCast">
//     <item name="castMiniBackgroundColor">#FF0000</item>
//     <item name="castShowImageThumbnail">true</item>
// </style>

// Programmgesteuerte Steuerung des Mini Controllers
val miniController = findViewById<MiniControllerFragment>(
    R.id.miniController
)
miniController.setVisibility(
    isCastSessionActive()
)

Expanded Controller ist eine Vollbild-Wiedergabesteuerung auf dem Fernseher, die durch Klicken auf den Mini Controller geöffnet wird. Der Expanded Controller zeigt: Titel, Beschreibung, Cover, eine Fortschrittsleiste mit Suchfunktion, Play/Pause/Stop-Tasten, Titelliste (falls in der Warteschlange), Lautstärkeregelung und eine Trenntaste. CAF bietet eine fertige ExpandedControllerActivity, die automatisch gestartet wird. Wenn eine benutzerdefinierte Oberfläche benötigt wird, erweitern Sie die Basis-ExpandedControllerActivity.

Benutzerdefinierter Receiver: eigene Oberfläche auf dem Fernseher

Ein benutzerdefinierter Receiver ist eine Webanwendung (HTML5 + CSS + JavaScript), die beim Start einer Cast-Sitzung auf Chromecast geladen wird. Im Gegensatz zum Default Receiver ermöglicht ein benutzerdefinierter Receiver die vollständige Kontrolle über das Erscheinungsbild des Inhalts auf dem Fernseher: Hintergrundbilder, Animationen, benutzerdefinierte Steuerelemente, Markenlogo. Der benutzerdefinierte Receiver wird in der Google Cast Console registriert und erhält eine eindeutige Anwendungs-ID.

Die Entwicklung eines benutzerdefinierten Receivers erfolgt in JavaScript mit dem Cast Receiver Framework (CAF Receiver). Der CAF Receiver bietet eine API zur Verarbeitung eingehender Nachrichten vom Sender, zur Verwaltung des Medienstreams, zur Verarbeitung von Warteschlangen und zur Integration mit DRM. Der Receiver läuft in einer isolierten Browserumgebung auf Chromecast (WebKit) mit eingeschränktem DOM-Zugriff. Mindestanforderungen: HTML5, CSS3, JavaScript ES6. Der Receiver wird auf einem HTTPS-Server gehostet.

js
// Basis-Custom-Receiver auf CAF
const context = cast.framework.CastReceiverContext.getInstance()
const playerManager = context.getPlayerManager()

playerManager.setMessageInterceptor(
    cast.framework.messages.MessageType.LOAD,
    (loadData) => {
        // Benutzerdefinierte Medienladebehandlung
        console.log("Loading media:", loadData.media.contentId)
        return loadData
    }
)

context.start()

// Behandlung benutzerdefinierter Nachrichten vom Sender
context.addCustomMessageListener("urn:x-cast:custom", (event) => {
    console.log("Custom data:", event.data)
})

Entwicklung und Bereitstellung eines benutzerdefinierten Receivers

Ein benutzerdefinierter Receiver muss auf einem echten Gerät über die Cast Developer Console getestet werden. Google empfiehlt die Verwendung des Default Receiver für Standard-Szenarien und eines benutzerdefinierten Receivers nur, wenn eine benutzerdefinierte TV-Oberfläche, DRM-Unterstützung (Widevine) oder Wiedergabelisten mit benutzerdefinierter Logik erforderlich sind. Der Receiver hat keinen Zugriff auf das DOM der Sender-Seite und kann keinen vom Sender gesendeten JavaScript-Code ausführen (Sicherheit).

Codebeispiel: Google Cast-Integration auf Android

Ein vollständiges Beispiel für die Integration von Google Cast in eine Android-Anwendung mit CAF. Die App spielt Videos ab und ermöglicht das Streamen auf Chromecast über den Cast Button. Der Code umfasst die CastOptions-Konfiguration, die CastContext-Initialisierung, die Verbindungsverwaltung und das Laden von Medien auf das Cast-Gerät.

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)
    }
}

Zum Testen von Google Cast verwenden Sie ein virtuelles Cast-Gerät über Chrome DevTools (Cast-Tab) oder einen physischen Chromecast. Google stellt eine Test-Anwendungs-ID bereit — CC1AD845 (Default Media Receiver). Registrieren Sie Ihre Anwendung vor der Veröffentlichung in der Google Cast Console und erhalten Sie eine Produktions-Anwendungs-ID. Das Cast SDK erfordert Google Play Services 21.0.0+ und Android 5.0+.

Häufige Probleme und Cast-Debugging

Das erste häufige Problem — Cast Button wird nicht angezeigt. Ursachen: Geräte befinden sich nicht im selben Wi-Fi-Netzwerk, Chromecast unterstützt kein DIAL (veraltete Firmware) oder die Wi-Fi-Erkennung ist auf dem Telefon deaktiviert. Lösung: Überprüfen Sie, ob Telefon und Chromecast mit demselben Netzwerk (2,4 GHz oder 5 GHz) verbunden sind. Google Cast funktioniert nicht in Gast-Wi-Fi-Netzwerken, VPN oder Unternehmensnetzwerken mit Client-Isolation. Verwenden Sie Cast Connect zum Testen ohne physisches Gerät.

Das zweite Problem — Verbindungsabbruch während der Wiedergabe. Chromecast kann aufgrund von schwachem Signal, Kanalüberlastung oder Störungen durch Mikrowellen (2,4 GHz) die Wi-Fi-Verbindung verlieren. Lösung: Platzieren Sie Chromecast näher am Router, verwenden Sie 5 GHz (falls unterstützt), konfigurieren Sie QoS für Chromecast-Datenverkehr. Behandeln Sie in der Anwendung den Callback onRemoteMediaPlayerStatusUpdated mit IDLE-Status und Fehlergrund — zeigen Sie bei Verbindungsverlust eine Benachrichtigung an und bieten Sie eine erneute Verbindung an.

Das dritte Problem — Inhalt wird auf Chromecast nicht abgespielt. Überprüfen Sie: Die Inhalts-URL ist aus dem Internet erreichbar (Chromecast lädt den Inhalt direkt, nicht über das Telefon), das Format wird von Chromecast unterstützt, und es gibt keine CORS-Blockierung (für .m3u8 und .mpd). Wenn Sie den Default Receiver verwenden, stellen Sie sicher, dass die Anwendungs-ID korrekt ist. Überprüfen Sie bei einem benutzerdefinierten Receiver, ob die Anwendung auf HTTPS gehostet wird. Verwenden Sie den Cast SDK Logger zum Debuggen: CastContext.getSharedInstance().setCastLogger(...).

Häufig gestellte Fragen

Wie unterscheidet sich Google Cast von AirPlay und Miracast?

Google Cast verwendet das „URL senden“-Modell — das Telefon sendet Chromecast einen Inhaltslink, der direkt geladen wird. AirPlay (Apple) ist ein ähnliches Protokoll für das Apple-Ökosystem. Miracast ist eine direkte Bildschirmspiegelung, die das Telefon belastet. Cast verbraucht 80% weniger Akku des Telefons und ermöglicht das Minimieren der App, ohne die Wiedergabe zu unterbrechen.

Benötige ich Chromecast, damit Google Cast funktioniert?

Google Cast funktioniert nicht nur auf Chromecast, sondern auch auf Fernsehern mit integriertem Google TV, Android TV sowie auf Audiosystemen mit Cast-Unterstützung (Nest Audio, Sonos). Für Entwicklung und Tests können Sie ein virtuelles Cast-Gerät über Chrome DevTools verwenden. Für die Cast-Integration in einer App ist kein physisches Gerät erforderlich — verwenden Sie Cast Connect zur Emulation.

Unterstützt Google Cast 4K und HDR?

Ja, Chromecast with Google TV (2020) und neuere Modelle unterstützen 4K HDR mit Dolby Vision, HDR10 und HDR10+. Der Standard-Chromecast (3. Generation) unterstützt 1080p 60fps. Chromecast Ultra — 4K HDR. Für 4K-Streaming ist eine Internetgeschwindigkeit von mindestens 25 Mbit/s und Widevine L1-Unterstützung für DRM-Inhalte (Netflix, Disney+) erforderlich.

Wie stoppe ich eine Cast-Sitzung programmgesteuert?

Um eine Sitzung zu stoppen, rufen Sie CastSession.endSession(boolean stopCasting) mit true auf, wenn Sie die Wiedergabe auf dem Fernseher stoppen möchten, oder mit false, wenn Sie nur das Telefon trennen möchten. Sie können auch die stop()-Methode auf RemoteMediaClient verwenden. Der Benutzer kann die Sitzung auch über den Cast Button oder Mini Controller durch Drücken der Trenntaste beenden.

Kann ich benutzerdefinierte Daten über Google Cast senden?

Ja, über benutzerdefinierte Nachrichten (custom messages). Der Sender sendet eine Nachricht über einen Namensraum (z. B. urn:x-cast:custom.namespace) mit einem beliebigen JSON-Objekt. Der Receiver verarbeitet die Nachricht über addCustomMessageListener. Benutzerdefinierte Nachrichten werden nur mit einem benutzerdefinierten Receiver unterstützt — der Default Receiver verarbeitet keine benutzerdefinierten Namensräume. Die maximale Nachrichtengröße beträgt 64 KB.

Zusammenfassung

  • Google Cast — ein Protokoll zum Streamen von Inhalten von mobilen Geräten auf Fernseher über Chromecast und Android TV
  • Architektur — der Sender (App) sendet eine Inhalts-URL, der Receiver (Chromecast) lädt und spielt sie ab
  • CAF SDK — Cast Application Framework mit gebrauchsfertigen Cast Button-, Mini Controller- und Expanded Controller-Komponenten
  • Formate — HLS, DASH, MP4, WebM, MP3, AAC, FLAC mit adaptiver Bitrate und Untertiteln
  • Default Receiver — der integrierte Google-Empfänger für schnelle Integration ohne TV-seitigen Code
  • Benutzerdefinierter Receiver — eine Webanwendung in HTML5/JS zur Anpassung der Oberfläche und DRM auf dem Fernseher
  • Debugging — überprüfen Sie Wi-Fi-Netzwerk, Inhalts-URL und Formate; verwenden Sie den Cast SDK Logger

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch