Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK

Streaming Video nelle Applicazioni Android

by
Difficulty:IntermediateLength:LongLanguages:

Italian (Italiano) translation by Mariano Serafini (you can also view the original English article)

La piattaforma Android fornisce librerie che puoi utilizzare per lo streaming di file multimediali, come ad esempio i video remoti, per presentarli per la riproduzione nelle tue applicazioni. In questo tutorial, eseguiremo lo streaming di un file video, visualizzandolo usando il componente VideoView insieme ad un oggetto MediaController per consentire all'utente di controllare la riproduzione.

Inoltre, vedremo brevemente il processo di presentazione del video utilizzando la classe MediaPlayer. Se hai completato la serie sulla creazione di un lettore musicale per Android, puoi utilizzare ciò che imparerai in questo tutorial per migliorarlo ulteriormente. Dovresti essere in grado di completare questo tutorial se hai già sviluppato almeno alcune applicazioni Android.

1. Crea una nuova App

Passo 1

Puoi utilizzare il codice in questo tutorial per migliorare un'applicazione esistente su cui sti lavorando oppure è possibile creare una nuova applicazione ora in Eclipse o Android Studio. Crea un nuovo progetto Android, dagli un nome a scelta, configura i dettagli e dagli una classe Activity iniziale e un layout.

Passo 2

Prima di tutto configura il manifesto del progetto per lo streaming dei media. Apri il file manifesto del tuo progetto e vai all'editing XML nel tuo IDE. Per i media in streaming, è necessario l'accesso a Internet, quindi aggiungere l'autorizzazione seguente nell'elemento manifest:

2. Aggiungi VideoView

Passo 1

La piattaforma Android fornisce la classe VideoView in cui è possibile riprodurre i file video. Aggiungiamone una al file del layout principale:

modifica il layout genitore in base alla tua applicazione se necessario. Dai all'istanza VideoView un attributo id in modo da poterlo riferire più tardi. Potrebbe essere necessario regolare le altre proprietà di layout per il proprio design.

Passo 2

Adesso recuperiamo un riferimento all'istanza VideoView nel codice. Apri la classe Activity principale dell'applicazione e aggiungi le seguenti importazioni aggiuntive:

La tua classe Activity deve già contenere il metodo onCreate in cui è impostata la visualizzazione del contenuto:

Dopo la linea setContentView, fai riferimento all'istanza VideoView come segue utilizzando l'id che abbiamo Impostato nel layout XML:

3. Streaming di un file video

Passo 1

Ora possiamo eseguire lo streaming di un file video nell'applicazione. Prepara l'URI per l'endpoint come segue: 

Naturalmente dovrai utilizzare l'indirizzo remoto per il file video che vuoi trasmettere. L'esempio qui è un file video di dominio pubblico ospitato da Internet Archive. Analizziamo la stringa di indirizzo come un URI in modo da poterla passare all'oggetto VideoView

Ora puoi avviare la riproduzione:

Il sistema operativo Android supporta una serie di formati video e multimediali, in più ogni dispositivo supporta altri formati aggiuntivi.

Come si può vedere nella Guida per sviluppatori, i formati di file video supportati includono 3GP, MP4, WEBM e MKV, a seconda del formato utilizzato e a quale livello di piattaforma l'utente ha installato.

Puoi aspettarti un supporto integrato per i seguenti formati audio MP3, MID, OGG e WAV. Puoi eseguire lo stream dei media su Android su RTSP, HTTP e HTTPS (da Android 3.1).

4. Aggiungi controlli di riproduzione

Passo 1

Abbiamo implementato la riproduzione video, ma l'utente si aspetterà e sarà abituato ad avere il controllo su di essa. Ancora una volta, la piattaforma Android fornisce risorse per gestire questo problema utilizzando un'interazione familiare tramite la classe MediaController

Nel metodo onCreate della classe Activity, prima della riga in cui si chiama start sul VideoView, crea un'istanza della classe: 

uccessivamente impostalo per utilizzare l'istanza VideoView come ancoraggio:

Infine, impostalo come controller multimediale per l'oggetto VideoView:

Quando esegui l'applicazione ora, l'utente dovrebbe poter controllare la riproduzione del video in streaming, inclusi i pulsanti di avanzamento e riavvolgimento rapidi, un pulsante play/pause e un controllo della barra di ricerca. 

Il controllo della barra di ricerca è accompagnato dalla lunghezza del file multimediale a destra e dalla posizione di riproduzione corrente a sinistra. Oltre ad essere in grado di toccare lungo la barra di ricerca per saltare ad una posizione nel file, lo stato dello streaming è indicato usando lo stesso tipo di visualizzazione al quale l'utente sarà abituato da siti e applicazioni come YouTube.

Come vedi dall'esecuzione dell'applicazione, il comportamento predefinito è che i controlli spariscono dopo pochi istanti, riapparendo quando l'utente tocca lo schermo. Puoi configurare il comportamento dell'oggetto MediaController in diversi modi. Guarda la serie sulla creazione di un riproduttore musicale per Android per un esempio di come eseguire questa operazione. Puoi anche migliorare la riproduzione multimediale implementando diversi listeners per configurare il comportamento della tua applicazione.

5. Usare MediaPlayer

Passo 1

Prima di finire, vediamo un approccio alternativo per lo streaming di video utilizzando la classe MediaPlayer, visto che lo abbiamo usato nella serie sulla creazione di un lettore musicale. Puoi eseguire lo streaming di media, incluso il video, in un oggetto MediaPlayer utilizzando una vista di superficie. Ad esempio, puoi utilizzare il seguente layout:

Facciamo riferimento a SurfaceView nell'implementazione della classe Activity.

Passo 2

Nella classe Activity, aggiungi le seguenti interfacce:

Il tuo IDE dovrebbe richiedere di aggiungere questi metodi non implementati:

Aggiungeremo ai metodi surfaceCreatedonPrepared.

Passo 3

Per implementare la riproduzione, aggiungi le seguenti variabili di istanza alla classe:

Nel metodo onCreate di Activity, puoi iniziare ad instanziare queste variabili utilizzando l'oggetto SurfaceView aggiunto al layout:

Passo 4

Nel metodo surfaceCreated, impostale tue risorse di riproduzione media:

Infine, nel metodo onPrepared, avviare la riproduzione:

Il tuo video dovrebbe essere riprodotto nell'istanza MediaPlayer quando si esegue l'applicazione.

Conclusioni

In questo tutorial, abbiamo descritto le basi dello streaming video su Android utilizzando le classi VideoView e MediaPlayer. Potresti aggiungere un sacco di miglioramenti al codice implementato qui, ad esempio, mediante la creazione di supporto video o streaming media nell'applicazione musicale che abbiamo creato. Puoi anche verificare le risorse associate per Android, come l'API di YouTube Android Player.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.