Media va striming zamonaviy mobil ishlab chiqishning asosiy kompetensiyalaridan biridir. Statista (2025) ma'lumotlariga ko'ra, global video striming bozori 2027 yilga kelib 100 milliard dollardan oshadi. Mobil qurilmalar barcha striming platformalari trafigining 60% dan ortig'ini tashkil qiladi. Ishlab chiqaruvchi protokollarni, pleyerlarni, kontent himoyasi mexanizmlarini va Picture-in-Picture kabi funksiyalarni tushunishi kerak. Mobil ilovalarda sifatli striming barcha ushbu texnologiyalarni egallashni talab qiladi.
Asosiy nuqtalar
HTTP Live Streaming (HLS) Apple tomonidan ishlab chiqilgan mobil ilovalarda striming uchun protokol. U videoni kichik segmentlarga (odatda 6–10 soniya) ajratadi va ularni oddiy HTTP orqali uzatadi. Pleyer pleylist (.m3u8) yuklab oladi va segmentlarni ketma-ket yuklab, sifatni ulanish tezligiga moslashtiradi. HLS barcha Apple qurilmalarida mobil ilovalarda ishonchli strimingni ta'minlaydi va iOS uchun de-fakto standartdir.
DASH (Dynamic Adaptive Streaming over HTTP) mobil ilovalarga media yetkazib berish uchun ochiq MPEG standartidir. HLS dan farqli o'laroq, DASH segmentlar uchun MP4 formatidan va .m3u8 o'rniga XML manifest (MPD) dan foydalanadi. DASH kodeklar ustidan ko'proq nazorat beradi va ko'proq formatlarni qo'llab-quvvatlaydi. HLS va DASH o'rtasidagi tanlov mobil qurilmalar uchun striming ishlab chiqishda asosiy qarordir. Protokollarni taqqoslash quyidagi jadvalda keltirilgan.
| Parametr | HLS | DASH |
|---|---|---|
| Ishlab chiqaruvchi | Apple | MPEG (ochiq standart) |
| Pleylist formati | .m3u8 | .mpd (XML) |
| Segmentlar | .ts yoki fMP4 | fMP4 (istalgan kodek) |
| Mahalliy qo'llab-quvvatlash | iOS, macOS, tvOS | Android, veb |
| Adaptiv bitrate | Ha (avc1, mp4a) | Ha (istalgan kodek) |
| Past kechikish | LL-HLS (2–5 s) | LL-DASH (2–5 s) |
Amalda, iOS ilovalari HLS ni tanlaydi — AVPlayer u bilan mahalliy ishlaydi. Android uchun ExoPlayer tufayli DASH afzal. Ikkala protokol mobil qurilmalarda media striming uchun mos keladi. IT Sectr da biz ikkala texnologiyadan foydalanamiz va protokolni maqsadli platformaga qarab tanlashni tavsiya qilamiz.
Adaptive Bitrate (ABR) pleyer ulanish tezligiga qarab avtomatik ravishda video sifatini tanlaydigan mexanizmdir. Oqim bir nechta bitratelarda (360p, 720p, 1080p, 4K) kodlanadi. Pleyer ular orasida pauzasiz o'tadi. Kodeklar: H.264 (AVC) — asosiy, H.265 (HEVC) — 50% samaraliroq, VP9 va AV1 — Android uchun ochiq muqobillar.
Mobil ilovalarda apparat dekodlash uchun to'g'ri kodekni tanlash muhimdir. Hardware Decoding qurilmaning GPU/video protsessoridan foydalanadi va kamroq batareya sarflaydi. Software Decoding CPU da ishlaydi — apparat dekodlash mavjud bo'lmaganda ishlatiladi. IT Sectr mobil qurilmalarda optimal media tinglash uchun MediaCodec (Android) yoki AVAssetTrack (iOS) orqali kodek qo'llab-quvvatlashni doimo tekshirishni tavsiya qiladi.
ExoPlayer Google tomonidan Android uchun media pleyer, mobil ilovalarda media tinglash uchun optimallashtirilgan. MediaPlayer dan farqli o'laroq, ExoPlayer apparat dekodlashga bog'liq emas va kengaytma modullari orqali maxsus sxemalarni qo'llab-quvvatlaydi. U HLS, DASH, SmoothStreaming va RTSP bilan ishlaydi. ExoPlayer YouTube, Google TV va Android TV ning asosiy pleyeridir.
AVPlayer va AVPlayerViewController iOS, macOS, tvOS uchun Apple pleyerlaridir. AVPlayer past darajadagi API, AVPlayerViewController PiP va AirPlay bilan tayyor UI o'ramidir. Asosiy farqlar: ExoPlayer buferlash va renderlash ustidan to'liq nazorat beradi, AVPlayerViewController minimal kod bilan tez integratsiyani ta'minlaydi. Pleyer tanlovi bevosita mobil ilovalarda striming sifatiga ta'sir qiladi.
// ExoPlayer — Android-da asosiy pleyer sozlamasi
val player = ExoPlayer.Builder(this)
.setMediaSource(ProgressiveMediaSource.Factory(DefaultHttpDataSource.Factory()))
.build()
val mediaItem = MediaItem.fromUri("https://example.com/stream.m3u8")
player.setMediaItem(mediaItem)
player.prepare()
player.playWhenReady = true
Kod ExoPlayer ning minimal ishga tushirilishini ko'rsatadi: nusxa yaratish, media elementini o'rnatish va tinglashni boshlash. ExoPlayer onStop dagi player.release() orqali Activity hayotiy siklini avtomatik boshqaradi. Android TV yoki PiP uchun PlayerView orqali qo'shimcha hayotiy sikl boshqaruvi talab qilinadi — bu mobil ilovalar uchun striming sozlashda ayniqsa muhimdir.
Transcoding videoni bir formatdan boshqasiga aylantirishdir. Turli mobil qurilmalar uchun media oqimlarini optimallashtirish uchun ishlatiladi (masalan, H.264 → H.265). Mobil qurilmalarda transcoding MediaCodec (Android) yoki AVAssetExportSession (iOS) orqali mumkin. Transcoding resurs talab qiladi va batareyani tugatadi — uni WorkManager yoki BGTaskScheduler orqali fonda bajaring.
Digital Rights Management (DRM) media kontentni ruxsatsiz nusxalashdan himoya qiluvchi tizimlardir. Mobil ilovalarda premium media striming uchun uchta asosiy texnologiya qo'llaniladi: Widevine (Google), FairPlay (Apple) va PlayReady (Microsoft). DRM bo'lmasa, premium xizmatlar (Netflix, Spotify, Disney+) kontent tarqata olmaydi.
Widevine Android uchun DRM himoya standarti, uch darajada mavjud: L3 (dasturiy shifrlash), L2, L1 (apparat shifrlash, faqat Trusted Execution Environment). FairPlay Apple-ning eksklyuziv tizimi, chip darajasida SVP (Secure Video Pipeline) dan foydalanadi. PlayReady Microsoft tizimi, Xbox va Windows qurilmalarida keng tarqalgan.
Multi-DRM barcha DRM kalitlarini boshqarish uchun bitta platformadan foydalanadigan yondashuvdir. Misol: EZDRM yoki Verimatrix. Ular yagona API orqali Widevine, FairPlay va PlayReady litsenziyalarini beradi. Multi-DRM mobil qurilmalarda premium media uchun ayniqsa dolzarbdir. IT Sectr da biz agregatorlar orqali multi-DRM ni amalga oshiramiz — bu har bir DRM ni alohida integratsiya qilish bilan solishtirganda vaqt va pulni tejaydi.
Audio Focus (Android) mobil ilovalarda media tinglash uchun audio oqimlarini boshqarish tizimidir. Ilovangiz Audio Focus ni so'raganda, boshqa ilovalar (musiqa, podkastlar) to'xtatiladi yoki ovozini pasaytiradi (ducking). Audio Focus bo'lmasa, ikkala ilova bir vaqtning o'zida ijro etilib, shovqin keltirib chiqaradi.
Android audio oqimlarini turlarga ajratadi: MUSIC, VOICE_CALL, ALARM, NOTIFICATION. Media pleyer uchun AudioManager.AUDIOFOCUS_GAIN ni so'rashingiz kerak. Fokus yo'qolganda (kiruvchi qo'ng'iroq) media tinglashni to'xtatib, fokus qaytgach davom ettirishingiz kerak. Amalga oshirish AudioManager.OnAudioFocusChangeListener orqali.
Audio Session (iOS) Apple mobil qurilmalarida media ilovalari uchun Audio Focus ga ekvivalentdir. AVAudioSession.sharedInstance() orqali sozlanadi. Kategoriyalar: .playback (video uchun majburiy), .soloAmbient (standart, qulflanganda jim), .playAndRecord (yozib olish uchun). Striming uchun .allowAirPlay opsiyasi bilan .playback dan foydalaning.
Picture-in-Picture (PiP) ilova kichiklashtirilganda yoki boshqa ekranga o'tilganda media kontent kichik suzuvchi oynada ijro etilishda davom etadigan rejimdir. PiP mobil qurilmalarda media ilovalari uchun standartga aylandi — iOS (iPadOS 13 dan) va Android (Android 8.0 dan).
Android da PiP Activity.isInPictureInPictureMode() va PictureInPictureParams.Builder orqali yoqiladi. Ilova ko'p oynali rejimda bo'lishi kerak. PiP oynasidan media tinglashni boshqarish uchun MediaSession talab qilinadi. Manifestda android:supportsPictureInPicture="true" ni belgilang.
AirPlay Apple TV, HomePod va mos Smart TV larga media striming qilish uchun Apple protokolidir. iOS da AVRoutePickerView yoki MPNowPlayingInfoCenter orqali amalga oshiriladi. Android da ekvivalent Google Cast SDK (Chromecast) dir. Ikkala texnologiya ham binar faylda sozlash va pleyer qo'llab-quvvatlashini talab qiladi. Ulardan biri bo'lmasa mobil ilovalarda sifatli striming mumkin emas.
Tez-tez so'raladigan savollar
iOS uchun HLS yaxshiroq — AVPlayer tomonidan mahalliy qo'llab-quvvatlanadi. Android va kross-platforma ilovalari uchun DASH afzal, chunki ExoPlayer DASH ni yaxshiroq qo'llab-quvvatlaydi va buferlashni moslashuvchan boshqaradi. Protokol tanlovi bevosita mobil ilovalarda strimingga ta'sir qiladi.
DRM majburiy faqat premium media kontent (filmlar, musiqa, kurslar) tarqatayotgan bo'lsangiz. Foydalanuvchi tomonidan yaratilgan kontent yoki bepul eshittirishlar uchun DRM kerak emas. IT Sectr DRM siz boshlashni va faqat talab bo'yicha qo'shishni tavsiya qiladi.
ExoPlayer DASH, HLS va SmoothStreaming qo'llab-quvvatlashi bilan Android uchun sozlanishi media pleyer. AVPlayerViewController PiP va AirPlay bilan iOS uchun mahalliy pleyer. ExoPlayer ko'proq nazorat beradi, AVPlayerViewController kamroq kod talab qiladi. Ikkalasi ham mobil ilovalarda sifatli media tinglashni ta'minlaydi.
PiP ilova kichiklashtirilganda media kontent kichik oynada ijro etilishda davom etadigan rejimdir. iOS da AVPlayerViewController delegati orqali, Android da PictureInPictureParams orqali yoqiladi. Manifest sozlashi va hayotiy sikl boshqaruvi talab qiladi.
Audio Focus (Android) va Audio Session (iOS) turli manbalardan bir vaqtda audio tinglashni boshqaradi. Ular media ilovangizning qo'ng'iroqlar, bildirishnomalar va boshqa audio ilovalarning ishga tushishiga to'g'ri javob berishini ta'minlaydi.
Xulosa
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.