NOTA! Questo sito utilizza i cookie e tecnologie simili.

Se non si modificano le impostazioni del browser, l'utente accetta. Per saperne di piu'

Approvo

Capitolo 37: L'interfaccia Player.

 

L'interfaccia Player permette di riprodurre i file multimediali.

 

Un Player viene creato da un Manager con uno dei suoi metodi statici.

Mette a disposizione metodi per gestire il ciclo di riproduzione dei file e controllare altri aspetti dell'audio, come il volume).

 

 

Un Player si comporta come una macchina a stati finiti, ha sempre uno 'stato', che può essere uno dei seguenti:

UNREALIZED Stato iniziale del Player, che ancora non ha tutte le informazioni necessarie al suo funzionamento.
REALIZED Il Player ha tutte le informazioni che gli servono per funzionare.
PREFETCHED Fase in cui vengono svolte delle operazioni poste tra la 'realizzazione' (REALIZED) e l'avvio (STARTED).
STARTED Il Player è in esecuzione. Se fermato, tornerà a PREFETCHED.
CLOSED Il Player è stato chiuso definitivamente.

 

 

Le possibili 'transizioni' tra gli stati di un Player sono illustrate nell'immagine seguente:

Guida J2ME transizioni stati Player

 

Segue un elenco di metodi utili messi a disposizione da Player:

realize()   :   void Procede con l'inizializzazione del Player.
prefetch()   :   void Acquisisce le risorse necessarie alla riproduzione del clip audio.
start()   :   void Avvia la riproduzione.
stop()   :   void Interrompe la riproduzione.
deallocate()   :   void Rilascia le risorse acquisite in fase di PREFETCH, ma non chiude il Player.
close()   :   void Chiude il Player, rilasciando le risorse.
getState()   :   void Restituisce lo stato del Player (vd. la discussione sugli stati, sopra).
setLoopCount(int count)   :   void Imposta il numero di ripetizioni del clip audio (quante volte bisogna ripeterne l'esecuzione).
getMediaTime()   :   long Restituisce la posizione attuale dell'audio.
setMediaTime(long now)   :   long Imposta la posizione attuale dell'audio.
getDuration()   :   long Restituisce la durata del clip audio attualmente in uso.
getContentType()   :   String Restituisce il tipo di file audio attualmente in uso.

 

I Player possono notificare alcuni eventi (cambi di stato,...).

Per implementare questa funzionalità, è necessario utilizzare l'interfaccia PlayerListener, che ci 'obbliga' a riscrivere il metodo:

  • playerUpdate(Player player, String event, Object eventData)   :   void;

lanciato ogni volta che 'qualcosa cambia' nel Player, ossia ogni volta che si verifica un evento riguardante il Player.

 

Sarà poi necessario aggiungere un listener al Player, cosa fattibile mediante il metodo:

  • addPlayerListener(PlayerListener pl)   :   void; .

 

Segue un elenco di eventi intercettabili, tutti identificati da opportune costanti:

STARTED Lanciato quando il Player viene avviato.
STOPPED Lanciato quando il Player viene fermato.
END_OF_MEDIA Lanciato quando viene raggiunta la fine del clip audio.
CLOSED Lanciato quando il Player viene chiuso.
DURATION_UPDATED Lanciato quando viene aggiornata la durata del Player.
DEVICE_AVAILABLE Lanciato quando viene rilasciata una risorsa necessaria al Player.
DEVICE_UNAVAILABLE Lanciato quando viene bloccata una risorsa necessaria al Player.
VOLUME_CHANGED Lanciato quando viene modificato il volume (vd. capitolo su VolumeControl).
ERROR Lanciato in caso di errore (di qualsiasi tipo, generico).

 

 

 
Vai all'inizio della pagina