Reproducir un vídeo de un campo de IU en una aplicación del dispositivo BlackBerry

  1. Importe las clases y las interfaces necesarias.
    import net.rim.device.api.ui.*;
    import net.rim.device.api.ui.component.*;
    import net.rim.device.api.ui.container.*;
    import java.io.*;
    import javax.microedition.media.*;
    import javax.microedition.media.control.*;
    
  2. Cree el marco de la aplicación ampliando la clase UiApplication. En main(), cree una instancia de la clase nueva e invoque enterEventDispatcher() para activar la aplicación para recibir eventos. En el constructor de la aplicación, invoque pushScreen() para mostrar la pantalla personalizada para la aplicación. La clase VideoPlaybackDemoScreen, que se describe en el paso 3, representa la pantalla personalizada.
    public class VideoPlaybackDemo extends UiApplication
    {
         public static void main(String[] args)
         {
              VideoPlaybackDemo app = new VideoPlaybackDemo();
              app.enterEventDispatcher();
         }
         public VideoPlaybackDemo()
         {
              pushScreen(new VideoPlaybackDemoScreen());
         }
    }
  3. Cree el marco para la pantalla personalizada ampliando la clase MainScreen.
    private class VideoPlaybackDemoScreen extends MainScreen
    {	
         public VideoPlaybackDemoScreen()
         {
         }
    }
  4. En el constructor de la pantalla, en un bloque try/catch, cree una instancia de la clase Player invocando Manager.createPlayer(String) y pasando la ubicación del archivo de vídeo que se va a reproducir.
    try 
    {
        Player player = javax.microedition.media.Manager.createPlayer("file:///SDCard/BlackBerry/videos/soccer1.avi");
    }
    catch(MediaException me)
    {
        Dialog.alert(me.toString());
    }
    catch(IOException ioe)
    {
        Dialog.alert(ioe.toString());
    }
  5. Para controlar un aspecto de la reproducción, recupere el objeto Control correspondiente. Primero, invoque el método Player del objeto realize() para acceder a su objeto asociadoControl. A continuación, invoque Player.getControl() pasando la cadena VideoControl para recuperar el objeto VideoControl asociado a Player.
    try 
    {
        Player player = javax.microedition.media.Manager.createPlayer("file:///SDCard/BlackBerry/videos/soccer1.avi");
        player.realize();
        VideoControl videoControl = (VideoControl) player.getControl("VideoControl");
    }
    catch(MediaException me)
    {
        Dialog.alert(me.toString());
    }
    catch(IOException ioe)
    {
        Dialog.alert(ioe.toString());
    }
  6. Invoque VideoControl.initDisplayMode(int mode, Object arg) para inicializar el modo que utiliza un campo de vídeo. Pase un parámetro arg para especificar la primitiva de IU que muestra el vídeo. Asigne el objeto devuelto como objeto Field.
    Nota: Puede invocar initDisplayMode() de diferentes formas para devolver Field o Item para mostrar un vídeo en una clase Canvas de un MIDlets.
    try 
    {
        Player player = javax.microedition.media.Manager.createPlayer("file:///SDCard/BlackBerry/videos/soccer1.avi");
        player.realize();
        VideoControl videoControl = (VideoControl) player.getControl("VideoControl");
        Field videoField = (Field)videoControl.initDisplayMode( VideoControl.USE_GUI_PRIMITIVE, "net.rim.device.api.ui.Field" );
    }
    catch(MediaException me)
    {
        Dialog.alert(me.toString());
    }
    catch(IOException ioe)
    {
        Dialog.alert(ioe.toString());
    }
  7. Invoque add() para agregar el objeto Field devuelto a Screen o Manager.
    try 
    {
        Player player = javax.microedition.media.Manager.createPlayer("file:///SDCard/BlackBerry/videos/soccer1.avi");
        player.realize();
        VideoControl videoControl = (VideoControl) player.getControl("VideoControl");
        Field videoField = (Field)videoControl.initDisplayMode( VideoControl.USE_GUI_PRIMITIVE, "net.rim.device.api.ui.Field" );
        add(videoField);
    }
    catch(MediaException me)
    {
        Dialog.alert(me.toString());
    }
    catch(IOException ioe)
    {
        Dialog.alert(ioe.toString());
    }
  8. Configure el volumen de la reproducción mediante VolumeControl.setLevel(). Para recuperar un VolumeControl asociado a Player, invoque Player.getControl("VolumeControl").
    try 
    {
        Player player = javax.microedition.media.Manager.createPlayer("file:///SDCard/BlackBerry/videos/soccer1.avi");
        player.realize();
        VideoControl videoControl = (VideoControl) player.getControl("VideoControl");
        Field videoField = (Field)videoControl.initDisplayMode( VideoControl.USE_GUI_PRIMITIVE, "net.rim.device.api.ui.Field" );
        add(videoField);
        VolumeControl volume = (VolumeControl) player.getControl("VolumeControl");
        volume.setLevel(30);
    }
    catch(MediaException me)
    {
        Dialog.alert(me.toString());
    }
    catch(IOException ioe)
    {
        Dialog.alert(ioe.toString());
    }
  9. Invoque Player.start() para iniciar la reproducción.
    try 
    {
        Player player = javax.microedition.media.Manager.createPlayer("file:///SDCard/BlackBerry/videos/soccer1.avi");
        player.realize();
        VideoControl videoControl = (VideoControl) player.getControl("VideoControl");
        Field videoField = (Field)videoControl.initDisplayMode( VideoControl.USE_GUI_PRIMITIVE, "net.rim.device.api.ui.Field" );
        add(videoField);
        VolumeControl volume = (VolumeControl) player.getControl("VolumeControl");
        volume.setLevel(30);
        player.start();
    }
    catch(MediaException me)
    {
        Dialog.alert(me.toString());
    }
    catch(IOException ioe)
    {
        Dialog.alert(ioe.toString());
    }

¿Le ha resultado útil esta información? Envíenos sus comentarios.