Google Cast: asosiy tushunchalar, striming protokoli va Cast SDK

Muallif: IT Sectr Nashr etilgan: 2026-04-30 O'qish vaqti: 10 daq

Google Cast — bu Google tomonidan mobil qurilmalardan televizorlar va audio tizimlariga multimedia kontentini Cast protokoli orqali striming qilish texnologiyasi. SDK dasturchilarga Android va iOS ilovalariga Chromecast qo'llab-quvvatlashni qo'shish, video, audio va tasvirlarni katta ekranlarga uzatish imkonini beradi. Google Cast Developer Documentation, 2025 ma'lumotlariga ko'ra, dunyo bo'ylab 100 milliondan ortiq Chromecast qurilmalari sotilgan va Cast SDK 40 000+ ilovalarda qo'llaniladi.

Asosiy

  • Google Cast — mobil qurilmalardan televizorlar va karnaylarga kontent strimingi uchun protokol va SDK
  • Yuboruvchi (Sender) — Cast qurilmasiga kontent yuboradigan mobil ilova
  • Qabul qiluvchi (Receiver) — televizordagi ilova (Chromecast), kontentni qabul qiladigan va ijro etadigan
  • CAF SDK — Cast Application Framework, Cast integratsiyasi uchun soddalashtirilgan API (Google tomonidan tavsiya etiladi)
  • Media Streams — ijro nazorati bilan Cast orqali HLS, DASH va MP4 strimingi

Google Cast nima?

Google Cast — bu Google tomonidan mobil qurilmalar, noutbuklar va planshetlardan televizorlar, karnaylar va boshqa ekranlarga striming uchun ishlab chiqilgan simsiz multimedia uzatish protokolidir. AirPlay (Apple) yoki Miracast-dan farqli o'laroq, Cast „URL yuborish” (send-to-device) modelidan foydalanadi: mobil ilova Chromecast-ga kontent URL-ni yuboradi va qurilma oqimni o'zi yuklab ijro etadi, telefonni yuklamaydi.

Google Cast-ning to'g'ridan-to'g'ri striming (screen mirroring) bilan solishtirganda asosiy ustunligi — energiya samaradorligi. Ijro boshlangandan so'ng telefon faqat pult vazifasini bajaradi: foydalanuvchi ilovani kichiklashtirishi, ekranni bloklashi yoki boshqa ilovaga o'tishi mumkin — video televizorda ijro etilishda davom etadi. Google (2025) ma'lumotlariga ko'ra, Cast mirroring yechimlariga nisbatan telefonda 80% kam energiya sarflaydi.

Google Cast nafaqat Chromecast-ni, balki Sony, TCL, Philips, Hisense va Google TV yoki Android TV-li boshqa ishlab chiqaruvchilarning televizorlaridagi o'rnatilgan Cast qabul qiluvchilarni ham qo'llab-quvvatlaydi. Cast audio tizimlarida (Nest Audio, Cast-li Sonos) va Chromecast Audio-da ham qo'llab-quvvatlanadi. Cast protokoli Wi-Fi (2.4/5 GHz) orqali ishlaydi va yuboruvchi qurilma bilan qabul qiluvchi bir xil tarmoqda bo'lishini talab qiladi.

Cast arxitekturasi: Yuboruvchi, Qabul qiluvchi va protokollar

Google Cast arxitekturasi uch komponentdan iborat: Yuboruvchi (mobil ilova), Qabul qiluvchi (Chromecast/televizordagi ilova) va transport protokoli. Yuboruvchi tarmoqdagi qurilmalarni aniqlash, ulanish o'rnatish va ijro buyruqlarini yuborish uchun Cast SDK-dan foydalanadi. Qabul qiluvchi — Chromecast brauzerida ishlaydigan, kontentni yuklab ijro etadigan veb-ilova (HTML5 + CSS + JavaScript).

Google Cast protokoli qurilmalarni aniqlash uchun DIAL (Discovery and Launch) va ijroni boshqarish uchun WebSocket orqali xususiy protokolga asoslanadi. DIAL mahalliy tarmoqda Cast qurilmalarini qidirish uchun SSDP (Simple Service Discovery Protocol) dan foydalanadi. Aniqlangandan so'ng Yuboruvchi 8008 yoki 8009 port orqali Qabul qiluvchi bilan WebSocket ulanishini o'rnatadi va JSON formatida buyruqlar yuboradi: LOAD, PLAY, PAUSE, STOP, SEEK.

KomponentPlatformaTexnologiya
Yuboruvchi (Sender)Android / iOS / ChromeCast SDK (Java/Kotlin, Swift, JS)
Standart Qabul qiluvchi (Default Receiver)Chromecast / Android TVO'rnatilgan (Google Cast Console orqali sozlash)
Maxsus Qabul qiluvchi (Custom Receiver)Chromecast / Android TVVeb-ilova (HTML5, CAF Receiver JS)
ProtokolMahalliy Wi-Fi tarmog'iWebSocket + JSON + DIAL/SSDP
Media transportiInternetHLS, DASH, MP4 (Chromecast tomonidan to'g'ridan-to'g'ri yuklash)

Ijroni boshqarish uchun Cast v2 protokoli

Yuboruvchi Qabul qiluvchiga kontentning o'zini emas, balki URL (media URL) va metama'lumotlarni (nom, rasm, subtitrlar) yuboradi. Qabul qiluvchi URL-dan kontentni mustaqil yuklaydi, bu esa telefonning ma'lumot uzatishga batareya sarf qilmasligiga imkon beradi. Ijro boshlangandan so'ng Yuboruvchi Cast Protocol v2 orqali pauza, orqaga-oldinga aylantirish, ovoz balandligini sozlash buyruqlarini yuborishi va ijro holatini olishi mumkin.

Cast Application Framework (CAF): tezkor integratsiya

Cast Application Framework (CAF) — 2018-yilda taqdim etilgan, mobil ilovalarda Cast integratsiyasi uchun Google-dan soddalashtirilgan API. CAF eskirgan Cast SDK (CastCompanionLibrary) o'rnini egallaydi va tayyor UI komponentlarini taqdim etadi: Cast Button (qurilmalarni aniqlash belgisi), Mini Controller (ekranning pastki qismida mini pleyer) va Expanded Controller (to'liq ekran pulti). CAF Android, iOS, Flutter va React Native-ni qo'llab-quvvatlaydi.

CAF-dan foydalanish uchun dasturchi o'z Qabul qiluvchisini yozishi shart emas — Google kontentni avtomatik yuklab ijro etadigan Standart Qabul qiluvchini (Default Receiver) taqdim etadi. Standart Qabul qiluvchi HLS, DASH, MP4, WebM, MP3, tasvirlar va subtitrlar qo'llab-quvvatlaydi. Qabul qiluvchi sozlamalari Google Cast Console-da amalga oshiriladi — kontent URL-ni ko'rsatish kifoya va Standart Qabul qiluvchi qolgan ishni bajaradi. Maxsus Qabul qiluvchi faqat nostandart stsenariylar uchun talab qilinadi: televizorda o'z interfeysi, DRM qo'llab-quvvatlash, ijro navbatlari.

kotlin
// CAF Receiver sozlamalarini konfiguratsiya qilish
val receiverOptions = CastReceiverOptions.Builder(context)
    .setReceiverApplicationId(
        CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID
    )
    .build()

// Cast kontekstini ulash
val castContext = CastContext.getSharedInstance(context)
castContext.setReceiverOptions(receiverOptions)

Cast Connect: jismoniy qurilmasiz sinov

CAF ulanish hayotiy siklini avtomatik boshqaradi: Cast Button orqali qurilmalarni aniqlash, ulanish o'rnatish, media yuklash, vaqtinchalik ulanish yo'qotilishida pauza va qayta ulanish. CAF shuningdek pleylistlar uchun ijro navbatlarini (media queues) va Android-da qulflangan ekran va bildirishnomalar markazida „Cast” tugmasini qo'llab-quvvatlaydi. Minimal versiya: Android 5.0 (API 21), iOS 14+.

Media strimingi: Chromecast-da HLS, DASH va MP4

Google Cast asosiy striming formatlarini qo'llab-quvvatlaydi: Apple-dan HLS (HTTP Live Streaming), DASH (Dynamic Adaptive Streaming over HTTP) va progressiv MP4. Chromecast internet ulanish tezligiga asoslanib avtomatik ravishda optimal video sifatini tanlaydi (adaptiv bitrate). HLS va DASH uchun Chromecast ijroni to'xtatmasdan real vaqtda oqimlarni almashtiradi. HLS Chromecast proshivka versiyasi 1.28+ dan qo'llab-quvvatlanadi.

Google Cast orqali striming uchun kontent ochiq URL (HTTP/HTTPS) orqali mavjud bo'lishi kerak — Chromecast kontentni telefondan emas, to'g'ridan-to'g'ri serverdan yuklaydi. DRM (Digital Rights Management) Widevine orqali qo'llab-quvvatlanadi: Chromecast Widevine L3 (barcha qurilmalar) va L1 (ba'zi modellar, masalan, Chromecast with Google TV) ni qo'llab-quvvatlaydi. DRM bilan ishlash uchun Shaka Player yoki ExoPlayer integratsiyasi bilan Maxsus Qabul qiluvchi talab qilinadi. Google ma'lumotlariga ko'ra, Chromecast with Google TV Netflix, Disney+ va boshqa xizmatlar uchun Widevine L1 bilan 4K HDR-ni qo'llab-quvvatlaydi.

kotlin
// CAF orqali Chromecast-ga media yuklash
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)

Subtitr formatlari: Chromecast TTML, WebVTT va CEA-608 ni qo'llab-quvvatlaydi. Subtitrlar MediaTrack orqali MediaInfo-ning bir qismi sifatida uzatiladi. Chromecast shuningdek Cast Queue API orqali tasvirlar orasida surish imkoniyati bilan asinxron tasvir yuklashni qo'llab-quvvatlaydi. Audio uchun Chromecast MP3, AAC, FLAC, WAV va OGG ni qo'llab-quvvatlaydi. Google Cast orqali audio striming Chromecast Audio va Cast karnaylarida qo'llab-quvvatlanadi.

Cast UI komponentlari: Cast Button va Mini Controller

Cast Button — Google Cast SDK-ning asosiy UI komponenti, Cast belgisini ko'rsatadi va avtomatik ravishda holatni o'zgartiradi: nofaol (qurilmalar yo'q), mavjud (qurilmalar topildi), ulangan (faol sessiya). Cast Button bosilganda qurilma tanlash dialog oynasi ochiladi. Komponent MediaRouteActionProvider (Android) yoki GCKUICastButton (iOS) orqali mavjud. Cast Button faqat tarmoqda Cast qurilmalari mavjud bo'lganda ko'rinishi kerak — CAF qurilmalar bo'lmaganda tugmani avtomatik yashiradi.

Mini Controller — ekranning pastki qismida kontent nomini, muqovasini, play/pause tugmalarini va sessiyani yopish tugmasini ko'rsatadigan panel. Mini Controller Cast sessiyasi faol bo'lganda va foydalanuvchi ijro bilan bog'liq bo'lmagan ekranda bo'lganda avtomatik paydo bo'ladi. CAF Android uchun layout-ga o'rnatiladigan tayyor MiniControllerFragment ni taqdim etadi. Standart holatda Mini Controller ekranning pastki qismida joylashadi, lekin istalgan pozitsiyaga sozlanishi mumkin.

kotlin
// Mini Controller-ni stillar orqali sozlash
// styles.xml
// <style name="CastMiniControllerStyle"
//     parent="Theme.GoogleCast">
//     <item name="castMiniBackgroundColor">#FF0000</item>
//     <item name="castShowImageThumbnail">true</item>
// </style>

// Mini Controller-ni dasturiy boshqarish
val miniController = findViewById<MiniControllerFragment>(
    R.id.miniController
)
miniController.setVisibility(
    isCastSessionActive()
)

Expanded Controller — Mini Controller bosilganda ochiladigan televizorda ijroni boshqarish uchun to'liq ekran pulti. Expanded Controller ko'rsatadi: nom, tavsif, muqova, aylantirish imkoniyati bilan borish paneli, play/pause/stop tugmalari, treklar ro'yxati (agar navbat bo'lsa), ovoz balandligini sozlash va uzish tugmasi. CAF avtomatik ishga tushadigan tayyor ExpandedControllerActivity ni taqdim etadi. Agar maxsus interfeys kerak bo'lsa — asosiy ExpandedControllerActivity-ni kengaytiring.

Maxsus Qabul qiluvchi: televizorda o'z interfeysi

Maxsus Qabul qiluvchi (Custom Receiver) — Cast sessiyasi boshlanganda Chromecast-ga yuklanadigan veb-ilova (HTML5 + CSS + JavaScript). Standart Qabul qiluvchidan farqli o'laroq, maxsus qabul qiluvchi televizorda kontent ko'rinishini to'liq boshqarish imkonini beradi: fon tasvirlari, animatsiyalar, maxsus boshqaruv elementlari, brend logotipi. Maxsus Qabul qiluvchi Google Cast Console-da ro'yxatdan o'tkaziladi va noyob Application ID oladi.

Maxsus Qabul qiluvchini ishlab chiqish Cast Receiver Framework (CAF Receiver) yordamida JavaScript-da amalga oshiriladi. CAF Receiver Yuboruvchidan kelgan xabarlarni qayta ishlash, media oqimini boshqarish, navbatlarni qayta ishlash va DRM integratsiyasi uchun API taqdim etadi. Qabul qiluvchi Chromecast brauzerining izolyatsiya qilingan muhitida (WebKit) DOM-ga cheklangan kirish bilan ishlaydi. Minimal talablar: HTML5, CSS3, JavaScript ES6. Qabul qiluvchi HTTPS serverida joylashtiriladi.

js
// CAF-da asosiy maxsus Qabul qiluvchi
const context = cast.framework.CastReceiverContext.getInstance()
const playerManager = context.getPlayerManager()

playerManager.setMessageInterceptor(
    cast.framework.messages.MessageType.LOAD,
    (loadData) => {
        // Media yuklashni maxsus qayta ishlash
        console.log("Loading media:", loadData.media.contentId)
        return loadData
    }
)

context.start()

// Yuboruvchidan maxsus xabarlarni qayta ishlash
context.addCustomMessageListener("urn:x-cast:custom", (event) => {
    console.log("Custom data:", event.data)
})

Maxsus Qabul qiluvchini ishlab chiqish va joylashtirish

Maxsus Qabul qiluvchi Cast Developer Console orqali haqiqiy qurilmada sinovdan o'tkazilishi kerak. Google standart stsenariylar uchun Standart Qabul qiluvchidan foydalanishni va maxsus Qabul qiluvchini faqat televizorda o'z interfeysi, DRM (Widevine) qo'llab-quvvatlashi yoki o'z mantiqi bilan ijro navbatlari kerak bo'lganda tavsiya qiladi. Qabul qiluvchi Yuboruvchi sahifasining DOM-iga kira olmaydi va Yuboruvchi tomonidan yuborilgan JavaScript-ni bajara olmaydi (xavfsizlik).

Kod namunasi: Android-da Google Cast integratsiyasi

CAF yordamida Android ilovasida Google Cast integratsiyasining to'liq namunasi. Ilova video ijro etadi va uni Cast Button orqali Chromecast-ga striming qilish imkonini beradi. Kod CastOptions sozlamalari, CastContext ishga tushirish, ulanishni boshqarish va Cast qurilmasiga media yuklashni o'z ichiga oladi.

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

Google Cast-ni sinash uchun Chrome DevTools (Cast yorlig'i) yoki jismoniy Chromecast orqali virtual Cast qurilmasidan foydalaning. Google test Application ID — CC1AD845 (Default Media Receiver) ni taqdim etadi. Nashrdan oldin ilovangizni Google Cast Console-da ro'yxatdan o'tkazing va ishlab chiqarish Application ID-ni oling. Cast SDK Google Play Services 21.0.0+ va Android 5.0+ talab qiladi.

Odatdagi muammolar va Cast nosozliklarini bartaraf etish

Birinchi tez-tez uchraydigan muammo — Cast Button ko'rinmaydi. Sabablari: qurilmalar bir xil Wi-Fi tarmog'ida emas, Chromecast DIAL-ni qo'llab-quvvatlamaydi (eski proshivka) yoki telefonda Wi-Fi aniqlash o'chirilgan. Yechish: telefon va Chromecast bir xil tarmoqqa (2.4 GHz yoki 5 GHz) ulanganligini tekshiring. Google Cast mehmon Wi-Fi tarmoqlari, VPN yoki mijoz izolyatsiyasi bo'lgan korporativ tarmoqlarda ishlamaydi. Jismoniy qurilmasiz sinash uchun Cast Connect-dan foydalaning.

Ikkinchi muammo — ijro paytida ulanish uzilishi. Chromecast zaif signal, kanalning haddan tashqari yuklanishi yoki mikroto'lqinli pechdan (2.4 GHz) interferensiya tufayli Wi-Fi ulanishini yo'qotishi mumkin. Yechish: Chromecast-ni routerga yaqinroq joylashtiring, 5 GHz dan foydalaning (agar qo'llab-quvvatlansa), Chromecast trafigi uchun QoS sozlang. Ilovada IDLE holati va xato sababi bilan onRemoteMediaPlayerStatusUpdated callback-ni boshqaring — ulanish yo'qotilishida bildirishnoma ko'rsating va qayta ulanishni taklif qiling.

Uchinchi muammo — kontent Chromecast-da ijro etilmaydi. Tekshiring: kontent URL-i internetdan mavjud (Chromecast kontentni to'g'ridan-to'g'ri yuklaydi, telefon orqali emas), format Chromecast tomonidan qo'llab-quvvatlanadi, CORS blokadasi yo'q (.m3u8 va .mpd uchun). Agar Standart Qabul qiluvchi ishlatilsa, Application ID to'g'riligiga ishonch hosil qiling. Maxsus Qabul qiluvchi uchun ilova HTTPS da joylashtirilganligini tekshiring. Nosozliklarni bartaraf etish uchun Cast SDK Logger dan foydalaning: CastContext.getSharedInstance().setCastLogger(...).

Tez-tez beriladigan savollar

Google Cast AirPlay va Miracast-dan nima bilan farq qiladi?

Google Cast „URL yuborish” modelidan foydalanadi — telefon Chromecast-ga kontent havolasini yuboradi va u to'g'ridan-to'g'ri yuklanadi. AirPlay (Apple) — Apple ekotizimi uchun o'xshash protokol. Miracast — telefonni yuklaydigan to'g'ridan-to'g'ri ekran uzatish (screen mirroring). Cast telefon energiyasini 80% kam sarflaydi va ijroni to'xtatmasdan ilovani kichiklashtirish imkonini beradi.

Google Cast ishlashi uchun Chromecast kerakmi?

Google Cast nafaqat Chromecast-da, balki o'rnatilgan Google TV, Android TV bo'lgan televizorlarda va Cast qo'llab-quvvatlovchi audio tizimlarda (Nest Audio, Sonos) ishlaydi. Ishlab chiqish va sinash uchun Chrome DevTools orqali virtual Cast qurilmasidan foydalanish mumkin. Ilovada Cast integratsiyasi uchun jismoniy qurilma talab qilinmaydi — emulyatsiya uchun Cast Connect-dan foydalaning.

Google Cast 4K va HDR qo'llab-quvvatlaydimi?

Ha, Chromecast with Google TV (2020) va yangi modellar Dolby Vision, HDR10 va HDR10+ bilan 4K HDR-ni qo'llab-quvvatlaydi. Standart Chromecast (3-avlod) 1080p 60fps ni qo'llab-quvvatlaydi. Chromecast Ultra — 4K HDR. 4K strimingi uchun internet tezligi kamida 25 Mbps va DRM kontenti (Netflix, Disney+) uchun Widevine L1 qo'llab-quvvatlashi talab qilinadi.

Cast sessiyasini dasturiy ravishda qanday to'xtatish mumkin?

Sessiyani to'xtatish uchun CastSession.endSession(boolean stopCasting) ni chaqiring: televizorda ijroni to'xtatmoqchi bo'lsangiz true, faqat telefonni uzmoqchi bo'lsangiz false parametrini bering. RemoteMediaClient-da stop() metodidan ham foydalanishingiz mumkin. Foydalanuvchi Cast Button yoki Mini Controller orqali uzish tugmasini bosib sessiyani to'xtatishi mumkin.

Google Cast orqali maxsus ma'lumotlarni uzatish mumkinmi?

Ha, maxsus xabarlar (custom messages) orqali. Yuboruvchi namespace (masalan, urn:x-cast:custom.namespace) orqali ixtiyoriy JSON obyekti bilan xabar yuboradi. Qabul qiluvchi xabarni addCustomMessageListener orqali qayta ishlaydi. Maxsus xabarlar faqat maxsus Qabul qiluvchi bilan qo'llab-quvvatlanadi — Standart Qabul qiluvchi maxsus namespace-larni qayta ishlamaydi. Maksimal xabar hajmi — 64 KB.

Xulosa

  • Google Cast — mobil qurilmalardan Chromecast va Android TV orqali televizorlarga kontent strimingi protokoli
  • Arxitektura — Yuboruvchi (ilova) kontent URL-ni yuboradi, Qabul qiluvchi (Chromecast) yuklab ijro etadi
  • CAF SDK — Cast Application Framework tayyor Cast Button, Mini Controller va Expanded Controller komponentlari bilan
  • Formatlar — HLS, DASH, MP4, WebM, MP3, AAC, FLAC adaptiv bitrate va subtitrlar bilan
  • Standart Qabul qiluvchi — televizorda kod yozmasdan tezkor integratsiya uchun o'rnatilgan Google qabul qiluvchisi
  • Maxsus Qabul qiluvchi — televizorda interfeys va DRM-ni sozlash uchun HTML5/JS veb-ilova
  • Nosozliklarni bartaraf etish — Wi-Fi tarmog'ini, kontent URL-ni va format qo'llab-quvvatlashni tekshiring; Cast SDK Logger dan foydalaning

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing