Média a streamování v mobilním vývoji: co to je, jaké protokoly a jak to funguje

Autor: IT Sectr Publikováno: 2026-05-20 Doba čtení: 10 min

Média a streamování jsou jednou z klíčových kompetencí moderního mobilního vývoje. Podle Statista (2025) globální trh streamování videa překročí do roku 2027 100 miliard dolarů. Mobilní zařízení tvoří více než 60 % veškeré návštěvnosti streamovacích platforem. Vývojář musí rozumět protokolům, přehrávačům, mechanismům ochrany obsahu a funkcím jako Picture-in-Picture. Kvalitní streamování v mobilních aplikacích vyžaduje zvládnutí všech těchto technologií.

Hlavní body

  • Hlavní streamovací protokoly — HLS (Apple) a DASH (MPEG). HLS je preferován pro iOS, DASH pro Android a multiplatformní řešení.
  • ExoPlayer (Android) a AVPlayer (iOS) jsou standardní přehrávače. ExoPlayer je flexibilnější, AVPlayer se snadněji integruje. Pro multiplatformní vývoj existuje Google Cast SDK.
  • Systémy DRM (Widevine, FairPlay, PlayReady) chrání prémiový obsah. Widevine je standard pro Android, FairPlay pro iOS, PlayReady pro Windows/Xbox.
  • Audio Focus (Android) a Audio Session (iOS) spravují přehrávání zvuku během hovorů a oznámení. Bez nich bude uživatelský zážitek neúplný.
  • Picture-in-Picture a AirPlay jsou povinné funkce pro prémiové video aplikace. PiP umožňuje sledovat video v mini-okně při minimalizaci aplikace.

Protokoly HLS a DASH

HTTP Live Streaming (HLS) je protokol pro streamování v mobilních aplikacích vyvinutý společností Apple. Rozděluje video na malé segmenty (obvykle 6–10 sekund) a přenáší je přes běžné HTTP. Přehrávač stahuje seznam stop (.m3u8) a postupně načítá segmenty, přičemž přizpůsobuje kvalitu rychlosti připojení. HLS poskytuje spolehlivé streamování v mobilních aplikacích na všech zařízeních Apple a je de facto standardem pro iOS.

HLS vs DASH

DASH (Dynamic Adaptive Streaming over HTTP) je otevřený standard MPEG pro doručování médií do mobilních aplikací. Na rozdíl od HLS používá DASH pro segmenty formát MP4 a místo .m3u8 používá XML manifest (MPD). DASH poskytuje větší kontrolu nad kodeky a podporuje více formátů. Volba mezi HLS a DASH je klíčovým rozhodnutím při vývoji streamování pro mobilní zařízení. Srovnání protokolů je uvedeno v tabulce níže.

Parametr HLS DASH
VývojářAppleMPEG (otevřený standard)
Formát seznamu stop.m3u8.mpd (XML)
Segmenty.ts nebo fMP4fMP4 (libovolný kodek)
Nativní podporaiOS, macOS, tvOSAndroid, web
Adaptivní přenosová rychlostAno (avc1, mp4a)Ano (libovolný kodek)
Nízká latenceLL-HLS (2–5 s)LL-DASH (2–5 s)

V praxi si iOS aplikace vybírají HLS — AVPlayer s ním pracuje nativně. Pro Android je díky ExoPlayer preferován DASH. Oba protokoly jsou vhodné pro streamování médií na mobilních zařízeních. V IT Sectr používáme obě technologie a doporučujeme vybrat protokol na základě cílové platformy.

Adaptivní přenosová rychlost a kodeky

Adaptive Bitrate (ABR) je mechanismus, při kterém přehrávač automaticky vybírá kvalitu videa na základě rychlosti připojení. Stream je kódován ve více přenosových rychlostech (360p, 720p, 1080p, 4K). Přehrávač mezi nimi přepíná bez pauz. Kodeky: H.264 (AVC) — základní, H.265 (HEVC) — o 50 % účinnější, VP9 a AV1 — otevřené alternativy pro Android.

Pro hardwarové dekódování v mobilních aplikacích je důležité vybrat správný kodek. Hardware Decoding využívá GPU/video procesor zařízení a spotřebovává méně baterie. Software Decoding běží na CPU — používá se, když hardwarové dekódování není k dispozici. IT Sectr doporučuje vždy kontrolovat podporu kodeků přes MediaCodec (Android) nebo AVAssetTrack (iOS) pro optimální přehrávání médií na mobilních zařízeních.

Přehrávače: ExoPlayer a AVPlayer

ExoPlayer je multimediální přehrávač od Google pro Android, optimalizovaný pro přehrávání médií v mobilních aplikacích. Na rozdíl od MediaPlayer není ExoPlayer vázán na hardwarové dekódování a podporuje vlastní schémata prostřednictvím rozšiřujících modulů. Pracuje s HLS, DASH, SmoothStreaming a RTSP. ExoPlayer je hlavním přehrávačem pro YouTube, Google TV a Android TV.

ExoPlayer vs AVPlayerViewController

AVPlayer a AVPlayerViewController jsou přehrávače Apple pro iOS, macOS, tvOS. AVPlayer je nízkoúrovňové API, AVPlayerViewController je hotový UI obal s PiP a AirPlay. Hlavní rozdíly: ExoPlayer poskytuje plnou kontrolu nad vyrovnávací pamětí a vykreslováním, AVPlayerViewController nabízí rychlou integraci s minimálním kódem. Volba přehrávače přímo ovlivňuje kvalitu streamování v mobilních aplikacích.

kotlin
// ExoPlayer — nastavení základního přehrávače na Androidu
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

Kód ukazuje minimální inicializaci ExoPlayer: vytvoření instance, nastavení mediální položky a spuštění přehrávání. ExoPlayer automaticky zpracovává životní cyklus Activity prostřednictvím player.release() v onStop. Pro Android TV nebo PiP je vyžadováno další zpracování životního cyklu přes PlayerView — to je obzvláště důležité při nastavování streamování pro mobilní aplikace.

Transkódování a zpracování videa

Transcoding je převod videa z jednoho formátu do druhého. Používá se k optimalizaci mediálních toků pro různá mobilní zařízení (např. H.264 → H.265). Na mobilních zařízeních je transkódování možné přes MediaCodec (Android) nebo AVAssetExportSession (iOS). Transkódování je náročné na zdroje a vybíjí baterii — provádějte ho na pozadí přes WorkManager nebo BGTaskScheduler.

DRM: Widevine, FairPlay a PlayReady

Digital Rights Management (DRM) jsou systémy ochrany multimediálního obsahu před neoprávněným kopírováním. Pro streamování prémiových médií v mobilních aplikacích se používají tři hlavní technologie: Widevine (Google), FairPlay (Apple) a PlayReady (Microsoft). Bez DRM nemohou prémiové služby (Netflix, Spotify, Disney+) distribuovat obsah.

Srovnání systémů DRM

Widevine je standard ochrany DRM pro Android, dostupný ve třech úrovních: L3 (softwarové šifrování), L2, L1 (hardwarové šifrování, pouze Trusted Execution Environment). FairPlay je exkluzivní systém Apple, používá SVP (Secure Video Pipeline) na úrovni čipu. PlayReady je systém Microsoft, rozšířený na zařízeních Xbox a Windows.

Multi-DRM je přístup, kdy používáte jednu platformu pro správu všech DRM klíčů. Příklad: EZDRM nebo Verimatrix. Ty vydávají licence Widevine, FairPlay a PlayReady prostřednictvím jednotného API. Multi-DRM je obzvláště důležitý pro prémiová média na mobilních zařízeních. V IT Sectr implementujeme multi-DRM prostřednictvím agregátorů — to šetří čas a peníze ve srovnání s integrací každého DRM zvlášť.

Přehrávání zvuku: Audio Focus a Audio Session

Audio Focus (Android) je systém správy zvukových toků pro přehrávání médií v mobilních aplikacích. Když vaše aplikace požádá o Audio Focus, ostatní aplikace (hudba, podcasty) se pozastaví nebo sníží hlasitost (ducking). Bez Audio Focus by dvě aplikace přehrávaly současně a vytvářely hluk.

Audio Focus na Androidu

Android rozděluje zvukové toky na typy: MUSIC, VOICE_CALL, ALARM, NOTIFICATION. Pro multimediální přehrávač musíte požádat o AudioManager.AUDIOFOCUS_GAIN. Při ztrátě fokusu (příchozí hovor) musíte pozastavit přehrávání médií a po návratu fokusu obnovit. Implementace přes AudioManager.OnAudioFocusChangeListener.

Audio Session na iOS

Audio Session (iOS) je ekvivalent Audio Focus pro mediální aplikace na mobilních zařízeních Apple. Konfiguruje se přes AVAudioSession.sharedInstance(). Kategorie: .playback (povinné pro video), .soloAmbient (výchozí, ticho při uzamčení), .playAndRecord (pro nahrávání). Pro streamování použijte .playback s volbou .allowAirPlay.

PiP a AirPlay

Picture-in-Picture (PiP) je režim, ve kterém multimediální obsah pokračuje v přehrávání v malém plovoucím okně při minimalizaci aplikace nebo přechodu na jinou obrazovku. PiP se stal standardem pro mediální aplikace na mobilních zařízeních — iOS (od iPadOS 13) a Android (od Android 8.0).

PiP na Androidu

Na Androidu se PiP aktivuje přes Activity.isInPictureInPictureMode() a PictureInPictureParams.Builder. Aplikace musí být v režimu více oken. MediaSession je vyžadován pro ovládání přehrávání médií z okna PiP. V manifestu uveďte android:supportsPictureInPicture="true".

AirPlay a Chromecast

AirPlay je protokol Apple pro streamování médií na Apple TV, HomePod a kompatibilní Smart TV. Na iOS se implementuje přes AVRoutePickerView nebo MPNowPlayingInfoCenter. Na Androidu je ekvivalentem Google Cast SDK (Chromecast). Obě technologie vyžadují konfiguraci v binárním souboru a podporu v přehrávači. Kvalitní streamování v mobilních aplikacích je bez jedné z nich nemožné.

Často kladené otázky

Co je lepší: HLS nebo DASH pro mobilní aplikaci?

Pro iOS je lepší HLS — je nativně podporován AVPlayerem. Pro Android a multiplatformní aplikace je preferován DASH, protože ExoPlayer poskytuje lepší podporu DASH a flexibilnější kontrolu bufferování. Volba protokolu přímo ovlivňuje streamování v mobilních aplikacích.

Je použití DRM ve streamovací aplikaci povinné?

DRM je povinné pouze pokud distribuujete prémiový multimediální obsah (filmy, hudbu, kurzy). Pro obsah vytvářený uživateli nebo bezplatné vysílání není DRM nutné. IT Sectr doporučuje začít bez DRM a přidat ho pouze v případě potřeby.

Jaký je rozdíl mezi ExoPlayer a AVPlayerViewController?

ExoPlayer je přizpůsobitelný multimediální přehrávač pro Android s podporou DASH, HLS a SmoothStreaming. AVPlayerViewController je nativní iOS přehrávač pro HLS s PiP a AirPlay. ExoPlayer poskytuje větší kontrolu, AVPlayerViewController vyžaduje méně kódu. Oba poskytují kvalitní přehrávání médií v mobilních aplikacích.

Co je Picture-in-Picture (PiP) a jak ho implementovat?

PiP je režim, ve kterém multimediální obsah pokračuje v přehrávání v malém okně při minimalizaci aplikace. Na iOS se aktivuje přes delegáta AVPlayerViewController, na Androidu přes PictureInPictureParams. Vyžaduje konfiguraci manifestu a zpracování životního cyklu.

K čemu jsou Audio Focus a Audio Session?

Audio Focus (Android) a Audio Session (iOS) spravují současné přehrávání zvuku z různých zdrojů. Zajišťují, že vaše multimediální aplikace správně reaguje na hovory, oznámení a spouštění jiných zvukových aplikací.

Shrnutí

  • HLS je standard pro iOS, DASH pro Android. Volba protokolu závisí na cílové platformě a požadavcích na nízkou latenci.
  • ExoPlayer poskytuje plnou kontrolu nad přehráváním médií na Androidu. AVPlayerViewController nabízí rychlou integraci na iOS.
  • DRM (Widevine, FairPlay, PlayReady) chrání prémiový multimediální obsah před pirátstvím. Multi-DRM je standardním přístupem pro prémiové služby.
  • Audio Focus (Android) a Audio Session (iOS) spravují zvukový kontext aplikace. Nezbytné pro mobilní aplikace s přehráváním médií.
  • Picture-in-Picture a AirPlay jsou klíčové funkce moderních multimediálních aplikací. Implementace vyžaduje konfiguraci životního cyklu a přehrávače.
  • Adaptive Bitrate (ABR) automaticky přizpůsobuje kvalitu videa rychlosti připojení na mobilních zařízeních. Pro transkódování používejte úlohy na pozadí.
  • Hardware Decoding šetří baterii mobilních zařízení. Vždy kontrolujte podporu kodeků přes systémová API před spuštěním přehrávání.

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt