Média et streaming dans le développement mobile : qu'est-ce que c'est, quels protocoles et comment ça fonctionne

Auteur : IT Sectr Publié le : 2026-05-20 Temps de lecture : 10 min

Le média et le streaming sont l'une des compétences clés du développement mobile moderne. Selon Statista (2025), le marché mondial du streaming vidéo dépassera 100 milliards de dollars d'ici 2027. Les appareils mobiles représentent plus de 60 % de tout le trafic des plateformes de streaming. Le développeur doit comprendre les protocoles, les lecteurs, les mécanismes de protection du contenu et des fonctionnalités comme Picture-in-Picture. Un streaming de qualité dans les applications mobiles nécessite la maîtrise de toutes ces technologies.

L'essentiel

  • Les principaux protocoles de streaming sont HLS (Apple) et DASH (MPEG). HLS est préférable pour iOS, DASH pour Android et les solutions multiplateformes.
  • ExoPlayer (Android) et AVPlayer (iOS) sont les lecteurs standard. ExoPlayer est plus flexible, AVPlayer est plus simple à intégrer. Pour le développement multiplateforme, il existe Google Cast SDK.
  • Les systèmes DRM (Widevine, FairPlay, PlayReady) protègent le contenu premium. Widevine est la norme pour Android, FairPlay pour iOS, PlayReady pour Windows/Xbox.
  • Audio Focus (Android) et Audio Session (iOS) gèrent la lecture audio lors des appels et des notifications. Sans eux, l'expérience utilisateur sera incomplète.
  • Picture-in-Picture et AirPlay sont des fonctionnalités essentielles pour les applications vidéo premium. PiP permet de regarder une vidéo dans une fenêtre miniature lors de la réduction de l'application.

Protocoles HLS et DASH

HTTP Live Streaming (HLS) est un protocole de streaming pour applications mobiles développé par Apple. Il divise la vidéo en petits segments (généralement 6 à 10 secondes) et les transmet via HTTP classique. Le lecteur télécharge une liste de lecture (.m3u8) et charge séquentiellement les segments, en adaptant la qualité à la vitesse de connexion. HLS offre un streaming fiable dans les applications mobiles sur tous les appareils Apple et est la norme de facto pour iOS.

HLS vs DASH

DASH (Dynamic Adaptive Streaming over HTTP) est une norme ouverte MPEG pour la livraison de médias aux applications mobiles. Contrairement à HLS, DASH utilise le format MP4 pour les segments et un manifeste XML (MPD) au lieu de .m3u8. DASH offre plus de contrôle sur les codecs et prend en charge davantage de formats. Le choix entre HLS et DASH est une décision clé lors du développement du streaming pour les appareils mobiles. La comparaison des protocoles est présentée dans le tableau ci-dessous.

Paramètre HLS DASH
DéveloppeurAppleMPEG (norme ouverte)
Format de liste.m3u8.mpd (XML)
Segments.ts ou fMP4fMP4 (tout codec)
Support natifiOS, macOS, tvOSAndroid, web
Débit adaptatifOui (avc1, mp4a)Oui (tout codec)
Faible latenceLL-HLS (2–5 s)LL-DASH (2–5 s)

En pratique, les applications iOS choisissent HLS — AVPlayer fonctionne nativement avec. Pour Android, DASH est préféré grâce à ExoPlayer. Les deux protocoles conviennent au streaming multimédia sur les appareils mobiles. Chez IT Sectr, nous utilisons les deux technologies et recommandons de choisir le protocole en fonction de la plateforme cible.

Débit adaptatif et codecs

Adaptive Bitrate (ABR) est un mécanisme par lequel le lecteur sélectionne automatiquement la qualité vidéo en fonction de la vitesse de connexion. Le flux est encodé à plusieurs débits (360p, 720p, 1080p, 4K). Le lecteur bascule entre eux sans pause. Codecs : H.264 (AVC) — basique, H.265 (HEVC) — 50 % plus efficace, VP9 et AV1 — alternatives ouvertes pour Android.

Pour le décodage matériel dans les applications mobiles, il est important de choisir le bon codec. Hardware Decoding utilise le GPU/processeur vidéo de l'appareil et consomme moins de batterie. Software Decoding fonctionne sur le CPU — utilisé lorsque le décodage matériel n'est pas disponible. IT Sectr recommande de toujours vérifier la prise en charge des codecs via MediaCodec (Android) ou AVAssetTrack (iOS) pour une lecture multimédia optimale sur les appareils mobiles.

Lecteurs : ExoPlayer et AVPlayer

ExoPlayer est un lecteur multimédia de Google pour Android, optimisé pour la lecture de médias dans les applications mobiles. Contrairement à MediaPlayer, ExoPlayer n'est pas lié au décodage matériel et prend en charge des schémas personnalisés via des modules d'extension. Il fonctionne avec HLS, DASH, SmoothStreaming et RTSP. ExoPlayer est le lecteur principal de YouTube, Google TV et Android TV.

ExoPlayer vs AVPlayerViewController

AVPlayer et AVPlayerViewController sont les lecteurs Apple pour iOS, macOS, tvOS. AVPlayer est une API de bas niveau, AVPlayerViewController est un wrapper d'interface utilisateur prêt à l'emploi avec PiP et AirPlay. Différences principales : ExoPlayer offre un contrôle total sur la mise en mémoire tampon et le rendu, AVPlayerViewController offre une intégration rapide avec un minimum de code. Le choix du lecteur affecte directement la qualité du streaming dans les applications mobiles.

kotlin
// ExoPlayer — configuration de base du lecteur sur 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

Le code montre l'initialisation minimale d'ExoPlayer : création d'une instance, définition de l'élément multimédia et démarrage de la lecture. ExoPlayer gère automatiquement le cycle de vie de l'Activity via player.release() dans onStop. Pour Android TV ou PiP, un traitement supplémentaire du cycle de vie via PlayerView est nécessaire — c'est particulièrement important lors de la configuration du streaming pour les applications mobiles.

Transcodage et traitement vidéo

Transcoding est la conversion d'une vidéo d'un format à un autre. Il est utilisé pour optimiser les flux multimédia pour différents appareils mobiles (par exemple, H.264 → H.265). Sur les appareils mobiles, le transcodage est possible via MediaCodec (Android) ou AVAssetExportSession (iOS). Le transcodage est gourmand en ressources et épuise la batterie — faites-le en arrière-plan, via WorkManager ou BGTaskScheduler.

DRM : Widevine, FairPlay et PlayReady

Digital Rights Management (DRM) sont des systèmes de protection des contenus multimédias contre la copie non autorisée. Trois technologies principales sont utilisées pour le streaming de médias premium dans les applications mobiles : Widevine (Google), FairPlay (Apple) et PlayReady (Microsoft). Sans DRM, les services premium (Netflix, Spotify, Disney+) ne peuvent pas distribuer de contenu.

Comparaison des systèmes DRM

Widevine est la norme de protection DRM pour Android, disponible en trois niveaux : L3 (chiffrement logiciel), L2, L1 (chiffrement matériel, Trusted Execution Environment uniquement). FairPlay est le système exclusif d'Apple, utilisant SVP (Secure Video Pipeline) au niveau de la puce. PlayReady est le système de Microsoft, répandu sur les appareils Xbox et Windows.

Multi-DRM est une approche où vous utilisez une seule plateforme pour gérer toutes les clés DRM. Exemple : EZDRM ou Verimatrix. Ils délivrent des licences Widevine, FairPlay et PlayReady via une API unifiée. Le Multi-DRM est particulièrement pertinent pour les médias premium sur les appareils mobiles. Chez IT Sectr, nous implémentons le multi-DRM via des agrégateurs — cela économise du temps et de l'argent par rapport à l'intégration de chaque DRM séparément.

Lecture audio : Audio Focus et Audio Session

Audio Focus (Android) est un système de gestion des flux audio pour la lecture de médias dans les applications mobiles. Lorsque votre application demande Audio Focus, les autres applications (musique, podcasts) se mettent en pause ou réduisent leur volume (ducking). Sans Audio Focus, deux applications joueraient simultanément, créant du bruit.

Audio Focus sur Android

Android divise les flux audio en types : MUSIC, VOICE_CALL, ALARM, NOTIFICATION. Pour un lecteur multimédia, vous devez demander AudioManager.AUDIOFOCUS_GAIN. En cas de perte de focus (appel entrant), vous devez mettre en pause la lecture multimédia et reprendre après le retour du focus. Implémentation via AudioManager.OnAudioFocusChangeListener.

Audio Session sur iOS

Audio Session (iOS) est l'équivalent d'Audio Focus pour les applications multimédias sur les appareils mobiles Apple. Il est configuré via AVAudioSession.sharedInstance(). Catégories : .playback (obligatoire pour la vidéo), .soloAmbient (par défaut, silencieux lors du verrouillage), .playAndRecord (pour l'enregistrement). Pour le streaming, utilisez .playback avec l'option .allowAirPlay.

PiP et AirPlay

Picture-in-Picture (PiP) est un mode dans lequel le contenu multimédia continue de jouer dans une petite fenêtre flottante lors de la réduction de l'application ou de la navigation vers un autre écran. PiP est devenu un standard pour les applications multimédias sur les appareils mobiles — iOS (depuis iPadOS 13) et Android (depuis Android 8.0).

PiP sur Android

Sur Android, PiP est activé via Activity.isInPictureInPictureMode() et PictureInPictureParams.Builder. L'application doit être en mode multi-fenêtre. MediaSession est nécessaire pour contrôler la lecture multimédia depuis la fenêtre PiP. Dans le manifeste, spécifiez android:supportsPictureInPicture="true".

AirPlay et Chromecast

AirPlay est le protocole d'Apple pour diffuser des médias sur Apple TV, HomePod et les téléviseurs intelligents compatibles. Sur iOS, il est implémenté via AVRoutePickerView ou MPNowPlayingInfoCenter. Sur Android, l'équivalent est Google Cast SDK (Chromecast). Les deux technologies nécessitent une configuration dans le fichier binaire et une prise en charge dans le lecteur. Un streaming de qualité dans les applications mobiles est impossible sans l'une d'elles.

Questions fréquentes

Quel est le meilleur : HLS ou DASH pour une application mobile ?

Pour iOS, HLS est meilleur — il est nativement supporté par AVPlayer. Pour Android et les applications multiplateformes, DASH est préférable car ExoPlayer offre un meilleur support pour DASH et un contrôle plus flexible de la mise en mémoire tampon. Le choix du protocole affecte directement le streaming dans les applications mobiles.

Est-il obligatoire d'utiliser DRM dans une application de streaming ?

DRM est obligatoire uniquement si vous distribuez du contenu multimédia premium (films, musique, cours). Pour le contenu généré par l'utilisateur ou les diffusions free-to-air, DRM n'est pas nécessaire. IT Sectr recommande de commencer sans DRM et de l'ajouter uniquement si nécessaire.

Quelle est la différence entre ExoPlayer et AVPlayerViewController ?

ExoPlayer est un lecteur multimédia personnalisable pour Android avec support de DASH, HLS et SmoothStreaming. AVPlayerViewController est un lecteur natif iOS pour HLS avec PiP et AirPlay. ExoPlayer offre plus de contrôle, AVPlayerViewController nécessite moins de code. Les deux offrent une lecture multimédia de qualité dans les applications mobiles.

Qu'est-ce que Picture-in-Picture (PiP) et comment l'implémenter ?

PiP est un mode dans lequel le contenu multimédia continue de jouer dans une petite fenêtre lors de la réduction de l'application. Sur iOS, il est activé via le délégué AVPlayerViewController, sur Android via PictureInPictureParams. Nécessite une configuration du manifeste et une gestion du cycle de vie.

À quoi servent Audio Focus et Audio Session ?

Audio Focus (Android) et Audio Session (iOS) gèrent la lecture audio simultanée provenant de différentes sources. Ils garantissent que votre application multimédia réponde correctement aux appels, notifications et au lancement d'autres applications audio.

Résumé

  • HLS est la norme pour iOS, DASH pour Android. Le choix du protocole dépend de la plateforme cible et des exigences de faible latence.
  • ExoPlayer offre un contrôle total sur la lecture multimédia sur Android. AVPlayerViewController fournit une intégration rapide sur iOS.
  • DRM (Widevine, FairPlay, PlayReady) protège le contenu multimédia premium contre le piratage. Multi-DRM est l'approche standard pour les services premium.
  • Audio Focus (Android) et Audio Session (iOS) gèrent le contexte audio de l'application. Essentiels pour les applications mobiles avec lecture multimédia.
  • Picture-in-Picture et AirPlay sont des fonctionnalités clés pour les applications multimédias modernes. L'implémentation nécessite une configuration du cycle de vie et du lecteur.
  • Adaptive Bitrate (ABR) ajuste automatiquement la qualité vidéo en fonction de la vitesse de connexion sur les appareils mobiles. Utilisez des tâches en arrière-plan pour le transcodage.
  • Hardware Decoding économise la batterie des appareils mobiles. Vérifiez toujours la prise en charge des codecs via les API système avant de démarrer la lecture.

Nous développerons une application mobile clé en main

IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.

Discuter du projet