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 43: Implementazione di un VideoPlayer.

 

Come promesso nel capitolo precedente, riporto qui di seguito il codice per sviluppare una MIDlet in grado di aprire e riprodurre un file video (in questo caso, il nome del file è 'video.mpg' , memorizzato su pc).

 

La classe che estende da MIDlet si chiama 'Prova'. Si occupa di recuperare l'istanza del Display corrente ed agganciarvi un oggetto 'MiaCanvas', la cui classe è definita nel listato qui sotto.

'MiaCanvas' si occupa di creare un Player e mostrare a video il... video.

 

 

Per la visualizzazione di un video clip è necessario utilizzare un particolare tipo di controllore, il VideoControl.

Tra gli import della MIDlet dovremo, quindi, aggiungere quelli che ci permettono di implementare tale controllore:

  • import javax.microedition.media.*;
  • import javax.microedition.media.control.VideoControl.*; .

 

 

 

Attenzione anche al metodo createPlayer di Manager, nel listato: questa volta ho utilizzato il metodo che fa uso di un MediaLocator, per cui ho inserito una stringa formattata come un URI.

L'emulatore WTK chiederà, in esecuzione, di poter accedere ai file del file system: accettate; allo stesso modo, il dispositivo mobile vi chiederà di poter accedere alla rete, qualora inseriate un URI web (http://).

 

Ecco il codice:

import java.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.media.*;
import javax.microedition.media.control.*;
import javax.microedition.midlet.MIDlet;
import javax.microedition.media.control.VideoControl;


public class Prova extends MIDlet
{
private Display d;
private MiaCanvas miaCanvas;

public Prova()
{
miaCanvas = new MiaCanvas();
d = Display.getDisplay(this);
d.setCurrent(miaCanvas);
}

protected void startApp()
{
}

protected void pauseApp() { }

protected void destroyApp(boolean arg0)
{
notifyDestroyed();
}
}


class MiaCanvas extends Canvas
{
private Player p;
private VideoControl vc;


public MiaCanvas() // Costruttore
{
try
{
p = Manager.createPlayer("file://video.mpg");
p.realize();
p.prefetch();
vc = (VideoControl) p.getControl("VideoControl");
vc.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, this);
vc.setDisplayLocation((getWidth() - vc.getSourceWidth()) / 2, (getHeight() - vc.getSourceHeight())/2);
vc.setVisible(true);
}
catch(Exception e)
{
e.printStackTrace();
}
}

protected void paint(Graphics g) // Le classi che ereditano da Canvas devono sovrascrivere questo metodo
{
}

protected void keyPressed(int keyCode)
{
// Da utilizzare per inserire eventuali comandi da tastierino per controllare l'esecuzione, il volume, ecc...
// In questo esempio, la riproduzione del filmato viene avviata automaticamente alla creazione di MiaCanvas, ma potete creare dei semplici comandi per gestire questo aspetto.
}
}

 

 

 
Vai all'inizio della pagina