Media e streaming nello sviluppo mobile: cosa sono, quali protocolli e come funzionano

Autore: IT Sectr Pubblicato: 2026-05-20 Tempo di lettura: 10 min

I media e lo streaming sono una delle competenze chiave dello sviluppo mobile moderno. Secondo Statista (2025), il mercato mondiale dello streaming video supererà i 100 miliardi di dollari entro il 2027. I dispositivi mobili costituiscono oltre il 60% di tutto il traffico delle piattaforme di streaming. Lo sviluppatore deve comprendere protocolli, lettori, meccanismi di protezione dei contenuti e funzionalità come Picture-in-Picture. Lo streaming di qualità nelle applicazioni mobili richiede la padronanza di tutte queste tecnologie.

Punti chiave

  • I principali protocolli di streaming sono HLS (Apple) e DASH (MPEG). HLS è preferibile per iOS, DASH per Android e soluzioni multipiattaforma.
  • ExoPlayer (Android) e AVPlayer (iOS) sono i lettori standard. ExoPlayer è più flessibile, AVPlayer è più facile da integrare. Per lo sviluppo multipiattaforma esiste Google Cast SDK.
  • I sistemi DRM (Widevine, FairPlay, PlayReady) proteggono i contenuti premium. Widevine è lo standard per Android, FairPlay per iOS, PlayReady per Windows/Xbox.
  • Audio Focus (Android) e Audio Session (iOS) gestiscono la riproduzione audio durante chiamate e notifiche. Senza di essi, l'esperienza utente sarà incompleta.
  • Picture-in-Picture e AirPlay sono funzionalità essenziali per le app video premium. PiP consente di guardare video in una finestra ridotta quando si minimizza l'app.

Protocolli HLS e DASH

HTTP Live Streaming (HLS) è un protocollo per lo streaming in applicazioni mobili sviluppato da Apple. Suddivide il video in piccoli segmenti (solitamente 6–10 secondi) e li trasmette tramite HTTP normale. Il lettore scarica una playlist (.m3u8) e carica sequenzialmente i segmenti, adattando la qualità alla velocità della connessione. HLS fornisce uno streaming affidabile nelle applicazioni mobili su tutti i dispositivi Apple ed è lo standard de facto per iOS.

HLS vs DASH

DASH (Dynamic Adaptive Streaming over HTTP) è uno standard aperto MPEG per la distribuzione di media alle applicazioni mobili. A differenza di HLS, DASH utilizza il formato MP4 per i segmenti e un manifesto XML (MPD) invece di .m3u8. DASH offre più controllo sui codec e supporta più formati. La scelta tra HLS e DASH è una decisione chiave nello sviluppo dello streaming per dispositivi mobili. Il confronto dei protocolli è mostrato nella tabella seguente.

Parametro HLS DASH
SviluppatoreAppleMPEG (standard aperto)
Formato playlist.m3u8.mpd (XML)
Segmenti.ts o fMP4fMP4 (qualsiasi codec)
Supporto nativoiOS, macOS, tvOSAndroid, web
Bitrate adattivoSì (avc1, mp4a)Sì (qualsiasi codec)
Bassa latenzaLL-HLS (2–5 s)LL-DASH (2–5 s)

In pratica, le app iOS scelgono HLS — AVPlayer funziona nativamente con esso. Per Android, DASH è preferito grazie a ExoPlayer. Entrambi i protocolli sono adatti per lo streaming di media su dispositivi mobili. In IT Sectr, utilizziamo entrambe le tecnologie e raccomandiamo di scegliere il protocollo in base alla piattaforma target.

Bitrate adattivo e codec

Adaptive Bitrate (ABR) è un meccanismo in cui il lettore seleziona automaticamente la qualità video in base alla velocità della connessione. Il flusso è codificato a più bitrate (360p, 720p, 1080p, 4K). Il lettore passa dall'uno all'altro senza pause. Codec: H.264 (AVC) — base, H.265 (HEVC) — 50% più efficiente, VP9 e AV1 — alternative aperte per Android.

Per la decodifica hardware nelle applicazioni mobili, è importante scegliere il codec giusto. Hardware Decoding utilizza la GPU/processore video del dispositivo e consuma meno batteria. Software Decoding funziona sulla CPU — utilizzato quando la decodifica hardware non è disponibile. IT Sectr raccomanda di verificare sempre il supporto dei codec tramite MediaCodec (Android) o AVAssetTrack (iOS) per una riproduzione ottimale dei media sui dispositivi mobili.

Lettori: ExoPlayer e AVPlayer

ExoPlayer è un lettore multimediale di Google per Android, ottimizzato per la riproduzione di media nelle applicazioni mobili. A differenza di MediaPlayer, ExoPlayer non è legato alla decodifica hardware e supporta schemi personalizzati tramite moduli di estensione. Funziona con HLS, DASH, SmoothStreaming e RTSP. ExoPlayer è il lettore principale per YouTube, Google TV e Android TV.

ExoPlayer vs AVPlayerViewController

AVPlayer e AVPlayerViewController sono i lettori Apple per iOS, macOS, tvOS. AVPlayer è un'API di basso livello, AVPlayerViewController è un wrapper UI già pronto con PiP e AirPlay. Differenze principali: ExoPlayer offre il controllo completo su buffering e rendering, AVPlayerViewController offre un'integrazione rapida con codice minimo. La scelta del lettore influisce direttamente sulla qualità dello streaming nelle applicazioni mobili.

kotlin
// ExoPlayer — configurazione base del lettore su 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

Il codice mostra l'inizializzazione minima di ExoPlayer: creazione di un'istanza, impostazione dell'elemento multimediale e avvio della riproduzione. ExoPlayer gestisce automaticamente il ciclo di vita dell'Activity tramite player.release() in onStop. Per Android TV o PiP, è necessaria una gestione aggiuntiva del ciclo di vita tramite PlayerView — questo è particolarmente importante quando si configura lo streaming per applicazioni mobili.

Transcodifica e elaborazione video

Transcoding è la conversione di video da un formato all'altro. Viene utilizzato per ottimizzare i flussi multimediali per diversi dispositivi mobili (ad esempio, H.264 → H.265). Sui dispositivi mobili, la transcodifica è possibile tramite MediaCodec (Android) o AVAssetExportSession (iOS). La transcodifica è dispendiosa in termini di risorse e scarica la batteria — eseguila in background tramite WorkManager o BGTaskScheduler.

DRM: Widevine, FairPlay e PlayReady

Digital Rights Management (DRM) sono sistemi di protezione dei contenuti multimediali dalla copia non autorizzata. Tre tecnologie principali vengono utilizzate per lo streaming di media premium nelle applicazioni mobili: Widevine (Google), FairPlay (Apple) e PlayReady (Microsoft). Senza DRM, i servizi premium (Netflix, Spotify, Disney+) non possono distribuire contenuti.

Confronto dei sistemi DRM

Widevine è lo standard di protezione DRM per Android, disponibile in tre livelli: L3 (crittografia software), L2, L1 (crittografia hardware, solo Trusted Execution Environment). FairPlay è il sistema esclusivo di Apple, utilizza SVP (Secure Video Pipeline) a livello di chip. PlayReady è il sistema di Microsoft, diffuso su dispositivi Xbox e Windows.

Multi-DRM è un approccio in cui si utilizza un'unica piattaforma per gestire tutte le chiavi DRM. Esempio: EZDRM o Verimatrix. Emettono licenze Widevine, FairPlay e PlayReady tramite un'API unificata. Il Multi-DRM è particolarmente rilevante per i media premium sui dispositivi mobili. In IT Sectr, implementiamo multi-DRM tramite aggregatori — questo fa risparmiare tempo e denaro rispetto all'integrazione di ciascun DRM separatamente.

Riproduzione audio: Audio Focus e Audio Session

Audio Focus (Android) è un sistema di gestione dei flussi audio per la riproduzione di media nelle applicazioni mobili. Quando la tua app richiede Audio Focus, altre app (musica, podcast) si mettono in pausa o riducono il volume (ducking). Senza Audio Focus, due app riprodurrebbero contemporaneamente, creando rumore.

Audio Focus su Android

Android divide i flussi audio in tipi: MUSIC, VOICE_CALL, ALARM, NOTIFICATION. Per un lettore multimediale, è necessario richiedere AudioManager.AUDIOFOCUS_GAIN. Quando si perde il focus (chiamata in arrivo), è necessario mettere in pausa la riproduzione multimediale e riprendere dopo il ritorno del focus. Implementazione tramite AudioManager.OnAudioFocusChangeListener.

Audio Session su iOS

Audio Session (iOS) è l'equivalente di Audio Focus per le app multimediali sui dispositivi mobili Apple. Si configura tramite AVAudioSession.sharedInstance(). Categorie: .playback (obbligatoria per video), .soloAmbient (predefinita, silenziosa quando bloccata), .playAndRecord (per registrazione). Per lo streaming, utilizzare .playback con l'opzione .allowAirPlay.

PiP e AirPlay

Picture-in-Picture (PiP) è una modalità in cui il contenuto multimediale continua a essere riprodotto in una piccola finestra mobile quando si minimizza l'app o si passa a un'altra schermata. PiP è diventato uno standard per le app multimediali sui dispositivi mobili — iOS (da iPadOS 13) e Android (da Android 8.0).

PiP su Android

Su Android, PiP viene attivato tramite Activity.isInPictureInPictureMode() e PictureInPictureParams.Builder. L'app deve essere in modalità multi-finestra. MediaSession è necessario per controllare la riproduzione multimediale dalla finestra PiP. Nel manifest, specificare android:supportsPictureInPicture="true".

AirPlay e Chromecast

AirPlay è il protocollo Apple per lo streaming di media su Apple TV, HomePod e Smart TV compatibili. Su iOS, viene implementato tramite AVRoutePickerView o MPNowPlayingInfoCenter. Su Android, l'equivalente è Google Cast SDK (Chromecast). Entrambe le tecnologie richiedono configurazione nel file binario e supporto nel lettore. Lo streaming di qualità nelle applicazioni mobili è impossibile senza una di esse.

Domande frequenti

Cosa è meglio: HLS o DASH per un'app mobile?

Per iOS è meglio HLS — è supportato nativamente da AVPlayer. Per Android e app multipiattaforma, DASH è preferibile poiché ExoPlayer offre un supporto migliore per DASH e un controllo più flessibile del buffering. La scelta del protocollo influisce direttamente sullo streaming nelle applicazioni mobili.

È obbligatorio usare DRM in un'app di streaming?

DRM è obbligatorio solo se distribuisci contenuti multimediali premium (film, musica, corsi). Per contenuti generati dagli utenti o trasmissioni free-to-air, DRM non è necessario. IT Sectr raccomanda di iniziare senza DRM e aggiungerlo solo quando richiesto.

Qual è la differenza tra ExoPlayer e AVPlayerViewController?

ExoPlayer è un lettore multimediale personalizzabile per Android con supporto per DASH, HLS e SmoothStreaming. AVPlayerViewController è un lettore nativo iOS per HLS con PiP e AirPlay. ExoPlayer offre più controllo, AVPlayerViewController richiede meno codice. Entrambi forniscono una riproduzione multimediale di qualità nelle applicazioni mobili.

Cos'è Picture-in-Picture (PiP) e come implementarlo?

PiP è una modalità in cui il contenuto multimediale continua a essere riprodotto in una piccola finestra quando si minimizza l'app. Su iOS viene attivato tramite il delegato AVPlayerViewController, su Android tramite PictureInPictureParams. Richiede configurazione del manifest e gestione del ciclo di vita.

A cosa servono Audio Focus e Audio Session?

Audio Focus (Android) e Audio Session (iOS) gestiscono la riproduzione audio simultanea da fonti diverse. Garantiscono che la tua app multimediale risponda correttamente a chiamate, notifiche e all'avvio di altre app audio.

Riepilogo

  • HLS è lo standard per iOS, DASH per Android. La scelta del protocollo dipende dalla piattaforma target e dai requisiti di bassa latenza.
  • ExoPlayer offre il controllo completo sulla riproduzione multimediale su Android. AVPlayerViewController fornisce un'integrazione rapida su iOS.
  • DRM (Widevine, FairPlay, PlayReady) protegge i contenuti multimediali premium dalla pirateria. Multi-DRM è l'approccio standard per i servizi premium.
  • Audio Focus (Android) e Audio Session (iOS) gestiscono il contesto audio dell'app. Essenziali per app mobili con riproduzione multimediale.
  • Picture-in-Picture e AirPlay sono funzionalità chiave per le app multimediali moderne. L'implementazione richiede configurazione del ciclo di vita e del lettore.
  • Adaptive Bitrate (ABR) regola automaticamente la qualità video in base alla velocità di connessione sui dispositivi mobili. Utilizzare attività in background per la transcodifica.
  • Hardware Decoding risparmia la batteria dei dispositivi mobili. Verificare sempre il supporto dei codec tramite le API di sistema prima di avviare la riproduzione.

Svilupperemo un'applicazione mobile chiavi in mano

IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.

Discuti il progetto