Media en streaming in mobiele ontwikkeling: wat het is, welke protocollen en hoe het werkt

Auteur: IT Sectr Gepubliceerd: 2026-05-20 Leestijd: 10 min

Media en streaming is een van de belangrijkste competenties van moderne mobiele ontwikkeling. Volgens Statista (2025) zal de wereldwijde videostreamingmarkt in 2027 de 100 miljard dollar overschrijden. Mobiele apparaten zijn goed voor meer dan 60% van al het verkeer van streamingplatforms. Een ontwikkelaar moet protocollen, spelers, mechanismen voor contentbescherming en functies zoals Picture-in-Picture begrijpen. Kwaliteitsstreaming in mobiele apps vereist beheersing van al deze technologieën.

Belangrijkste punten

  • De belangrijkste streamingprotocollen zijn HLS (Apple) en DASH (MPEG). HLS heeft de voorkeur voor iOS, DASH voor Android en cross-platform oplossingen.
  • ExoPlayer (Android) en AVPlayer (iOS) zijn de standaard spelers. ExoPlayer is flexibeler, AVPlayer is eenvoudiger te integreren. Voor cross-platform ontwikkeling is er Google Cast SDK.
  • DRM-systemen (Widevine, FairPlay, PlayReady) beschermen premium content. Widevine is de standaard voor Android, FairPlay voor iOS, PlayReady voor Windows/Xbox.
  • Audio Focus (Android) en Audio Session (iOS) beheren de audioreproductie tijdens oproepen en meldingen. Zonder hen zal de gebruikerservaring onvolledig zijn.
  • Picture-in-Picture en AirPlay zijn essentiële functies voor premium video-apps. PiP maakt het mogelijk om video te bekijken in een minivenster wanneer de app wordt geminimaliseerd.

HLS- en DASH-protocollen

HTTP Live Streaming (HLS) is een protocol voor streaming in mobiele apps ontwikkeld door Apple. Het splitst video op in kleine segmenten (meestal 6–10 seconden) en verzendt ze via gewone HTTP. De speler downloadt een afspeellijst (.m3u8) en laadt achtereenvolgens segmenten, waarbij de kwaliteit wordt aangepast aan de verbindingssnelheid. HLS biedt betrouwbare streaming in mobiele apps op alle Apple-apparaten en is de de facto standaard voor iOS.

HLS vs DASH

DASH (Dynamic Adaptive Streaming over HTTP) is een open MPEG-standaard voor het leveren van media aan mobiele apps. In tegenstelling tot HLS gebruikt DASH het MP4-formaat voor segmenten en een XML-manifest (MPD) in plaats van .m3u8. DASH biedt meer controle over codecs en ondersteunt meer formaten. De keuze tussen HLS en DASH is een cruciale beslissing bij het ontwikkelen van streaming voor mobiele apparaten. De vergelijking van de protocollen wordt weergegeven in de onderstaande tabel.

Parameter HLS DASH
OntwikkelaarAppleMPEG (open standaard)
Afspeellijstformaat.m3u8.mpd (XML)
Segmenten.ts of fMP4fMP4 (elke codec)
Native ondersteuningiOS, macOS, tvOSAndroid, web
Adaptieve bitrateJa (avc1, mp4a)Ja (elke codec)
Lage latentieLL-HLS (2–5 s)LL-DASH (2–5 s)

In de praktijk kiezen iOS-apps voor HLS — AVPlayer werkt er native mee. Voor Android heeft DASH de voorkeur dankzij ExoPlayer. Beide protocollen zijn geschikt voor mediastreaming op mobiele apparaten. Bij IT Sectr gebruiken we beide technologieën en raden we aan het protocol te kiezen op basis van het doelplatform.

Adaptieve bitrate en codecs

Adaptive Bitrate (ABR) is een mechanisme waarbij de speler automatisch de videokwaliteit selecteert op basis van de verbindingssnelheid. De stream wordt gecodeerd met meerdere bitrates (360p, 720p, 1080p, 4K). De speler schakelt zonder pauzes tussen deze bitrates. Codecs: H.264 (AVC) — basis, H.265 (HEVC) — 50% efficiënter, VP9 en AV1 — open alternatieven voor Android.

Voor hardwarematige decodering in mobiele apps is het belangrijk de juiste codec te kiezen. Hardware Decoding gebruikt de GPU/videoprocessor van het apparaat en verbruikt minder batterij. Software Decoding werkt op de CPU — gebruikt wanneer hardwarematige decodering niet beschikbaar is. IT Sectr raadt aan om altijd codec-ondersteuning te controleren via MediaCodec (Android) of AVAssetTrack (iOS) voor optimale mediaweergave op mobiele apparaten.

Spelers: ExoPlayer en AVPlayer

ExoPlayer is een mediaspeler van Google voor Android, geoptimaliseerd voor mediaweergave in mobiele apps. In tegenstelling tot MediaPlayer is ExoPlayer niet gebonden aan hardwarematige decodering en ondersteunt het aangepaste schema's via extensiemodules. Het werkt met HLS, DASH, SmoothStreaming en RTSP. ExoPlayer is de belangrijkste speler voor YouTube, Google TV en Android TV.

ExoPlayer vs AVPlayerViewController

AVPlayer en AVPlayerViewController zijn de spelers van Apple voor iOS, macOS, tvOS. AVPlayer is een low-level API, AVPlayerViewController is een kant-en-klare UI-wrapper met PiP en AirPlay. Belangrijkste verschillen: ExoPlayer biedt volledige controle over buffering en rendering, AVPlayerViewController biedt snelle integratie met minimale code. De keuze van de speler heeft direct invloed op de kwaliteit van streaming in mobiele apps.

kotlin
// ExoPlayer — basisinstelling van de speler op Android
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

De code toont de minimale initialisatie van ExoPlayer: een instantie maken, het media-item instellen en de weergave starten. ExoPlayer behandelt automatisch de levenscyclus van Activity via player.release() in onStop. Voor Android TV of PiP is extra levenscyclusbeheer via PlayerView vereist — dit is vooral belangrijk bij het instellen van streaming voor mobiele apps.

Transcoderen en videoverwerking

Transcoding is het omzetten van video van het ene formaat naar het andere. Het wordt gebruikt om mediastromen te optimaliseren voor verschillende mobiele apparaten (bijv. H.264 → H.265). Op mobiele apparaten is transcoderen mogelijk via MediaCodec (Android) of AVAssetExportSession (iOS). Transcoderen is resource-intensief en verbruikt de batterij — doe het op de achtergrond via WorkManager of BGTaskScheduler.

DRM: Widevine, FairPlay en PlayReady

Digital Rights Management (DRM) zijn systemen voor de bescherming van media-inhoud tegen ongeoorloofd kopiëren. Voor het streamen van premium media in mobiele apps worden drie hoofdtechnologieën gebruikt: Widevine (Google), FairPlay (Apple) en PlayReady (Microsoft). Zonder DRM kunnen premium diensten (Netflix, Spotify, Disney+) geen inhoud distribueren.

Vergelijking van DRM-systemen

Widevine is de DRM-beschermingsstandaard voor Android, beschikbaar in drie niveaus: L3 (software-encryptie), L2, L1 (hardware-encryptie, alleen Trusted Execution Environment). FairPlay is het exclusieve systeem van Apple, het gebruikt SVP (Secure Video Pipeline) op chiplevel. PlayReady is het systeem van Microsoft, wijdverspreid op Xbox- en Windows-apparaten.

Multi-DRM is een aanpak waarbij u één platform gebruikt om alle DRM-sleutels te beheren. Voorbeeld: EZDRM of Verimatrix. Zij geven licenties voor Widevine, FairPlay en PlayReady via een uniforme API. Multi-DRM is vooral relevant voor premium media op mobiele apparaten. Bij IT Sectr implementeren we multi-DRM via aggregators — dit bespaart tijd en geld in vergelijking met het afzonderlijk integreren van elke DRM.

Audioreproductie: Audio Focus en Audio Session

Audio Focus (Android) is een systeem voor het beheren van audiostreams voor mediaweergave in mobiele apps. Wanneer uw app Audio Focus aanvraagt, worden andere apps (muziek, podcasts) gepauzeerd of verlagen ze het volume (ducken). Zonder Audio Focus zouden twee apps tegelijkertijd afspelen, wat ruis veroorzaakt.

Audio Focus op Android

Android verdeelt audiostreams in typen: MUSIC, VOICE_CALL, ALARM, NOTIFICATION. Voor een mediaspeler moet u AudioManager.AUDIOFOCUS_GAIN aanvragen. Bij verlies van focus (inkomende oproep) moet u de mediaweergave pauzeren en hervatten nadat de focus terugkeert. Implementatie via AudioManager.OnAudioFocusChangeListener.

Audio Session op iOS

Audio Session (iOS) is het equivalent van Audio Focus voor media-apps op Apple-mobiele apparaten. Het wordt geconfigureerd via AVAudioSession.sharedInstance(). Categorieën: .playback (vereist voor video), .soloAmbient (standaard, stil bij vergrendeling), .playAndRecord (voor opname). Gebruik voor streaming .playback met de optie .allowAirPlay.

PiP en AirPlay

Picture-in-Picture (PiP) is een modus waarin media-inhoud blijft afspelen in een klein zwevend venster wanneer de app wordt geminimaliseerd of naar een ander scherm wordt genavigeerd. PiP is standaard geworden voor media-apps op mobiele apparaten — iOS (sinds iPadOS 13) en Android (sinds Android 8.0).

PiP op Android

Op Android wordt PiP ingeschakeld via Activity.isInPictureInPictureMode() en PictureInPictureParams.Builder. De app moet in meerdervenster-modus zijn. MediaSession is vereist om de mediaweergave vanuit het PiP-venster te bedienen. Specificeer in het manifest android:supportsPictureInPicture="true".

AirPlay en Chromecast

AirPlay is het protocol van Apple voor het streamen van media naar Apple TV, HomePod en compatibele Smart TV's. Op iOS wordt het geïmplementeerd via AVRoutePickerView of MPNowPlayingInfoCenter. Op Android is het equivalent Google Cast SDK (Chromecast). Beide technologieën vereisen configuratie in het binaire bestand en ondersteuning in de speler. Kwaliteitsstreaming in mobiele apps is onmogelijk zonder een van beide.

Veelgestelde vragen

Wat is beter: HLS of DASH voor een mobiele app?

Voor iOS is HLS beter — het wordt native ondersteund door AVPlayer. Voor Android en cross-platform apps heeft DASH de voorkeur, omdat ExoPlayer betere ondersteuning biedt voor DASH en flexibelere bufferingcontrole. De keuze van het protocol heeft direct invloed op streaming in mobiele apps.

Is DRM verplicht in een streaming-app?

DRM is verplicht alleen als u premium media-inhoud (films, muziek, cursussen) distribueert. Voor door gebruikers gegenereerde inhoud of free-to-air uitzendingen is DRM niet nodig. IT Sectr raadt aan om zonder DRM te beginnen en het alleen toe te voegen wanneer dat nodig is.

Wat is het verschil tussen ExoPlayer en AVPlayerViewController?

ExoPlayer is een aanpasbare mediaspeler voor Android met ondersteuning voor DASH, HLS en SmoothStreaming. AVPlayerViewController is een native iOS-speler voor HLS met PiP en AirPlay. ExoPlayer biedt meer controle, AVPlayerViewController vereist minder code. Beide bieden hoogwaardige mediaweergave in mobiele apps.

Wat is Picture-in-Picture (PiP) en hoe implementeer je het?

PiP is een modus waarin media-inhoud blijft afspelen in een klein venster wanneer de app wordt geminimaliseerd. Op iOS wordt het ingeschakeld via de AVPlayerViewController-delegate, op Android via PictureInPictureParams. Vereist manifestconfiguratie en levenscyclusbeheer.

Waar zijn Audio Focus en Audio Session voor nodig?

Audio Focus (Android) en Audio Session (iOS) beheren gelijktijdige audioweergave uit verschillende bronnen. Ze zorgen ervoor dat uw media-app correct reageert op oproepen, meldingen en het starten van andere audio-apps.

Samenvatting

  • HLS is de standaard voor iOS, DASH voor Android. De protocolkeuze hangt af van het doelplatform en de vereisten voor lage latentie.
  • ExoPlayer biedt volledige controle over mediaweergave op Android. AVPlayerViewController biedt snelle integratie op iOS.
  • DRM (Widevine, FairPlay, PlayReady) beschermt premium media-inhoud tegen piraterij. Multi-DRM is de standaardaanpak voor premium diensten.
  • Audio Focus (Android) en Audio Session (iOS) beheren de audiocontext van de app. Essentieel voor mobiele apps met mediaweergave.
  • Picture-in-Picture en AirPlay zijn belangrijke functies voor moderne media-apps. Implementatie vereist configuratie van levenscyclus en speler.
  • Adaptive Bitrate (ABR) past de videokwaliteit automatisch aan de verbindingssnelheid aan op mobiele apparaten. Gebruik achtergrondtaken voor transcoderen.
  • Hardware Decoding bespaart de batterij van mobiele apparaten. Controleer altijd codec-ondersteuning via systeem-API's voordat u de weergave start.

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project