How to make Video splash





0/5 (0 vote)
This blog has been contributed to Forum Nokia Wiki at http://wiki.forum.nokia.com/index.php/How_to_make_Video_splash In those a few lines you will find a code of how to create easy startup splash screen that can play video files of any format (GIF,AVI,mpg,3gpp,real etc..)video splash classpack
This blog has been contributed to Forum Nokia Wiki at http://wiki.forum.nokia.com/index.php/How_to_make_Video_splash
In those a few lines you will find a code of how to create easy startup splash screen that can play video files of any format (GIF,AVI,mpg,3gpp,real etc..)
video splash class
package GALAXY.videosplash;
import java.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.media.*;
import javax.microedition.media.control.*;
public class Splash extends Canvas implements PlayerListener, Runnable {
private Display display;
private Displayable next;
private String MIMEtype;
private Player player;
private String file;
public Splash(Display display, Displayable next, String file,
String MIMEtype) {
this.display = display;
this.next = next;
this.file = file;
this.MIMEtype = MIMEtype;
Thread th = new Thread(this);
th.start();
}
protected void keyPressed(int keyCode) {
stopPlayer();
nextScreen();
}
protected void paint(Graphics g) {
int x = g.getClipX();
int y = g.getClipY();
int w = g.getClipWidth();
int h = g.getClipHeight();
g.setColor(0x0000000);
g.fillRect(x, y, w, h);
}
protected void pointerPressed(int x, int y) {
stopPlayer();
nextScreen();
}
protected void showNotify() {
}
private void nextScreen() {
this.display.setCurrent(next);
}
public void run() {
try {
resetplayer();
} catch (MediaException ex) {
nextScreen();
}
this.play(file);
}
public void playerUpdate(Player player, String playerstate, Object object) {
if (playerstate == PlayerListener.END_OF_MEDIA) {
try {
resetplayer();
} catch (MediaException me) {
}
player = null;
nextScreen();
}
}
private void resetplayer() throws MediaException {
if (player != null) {
if (player.getState() == Player.STARTED) {
player.stop();
}
if (player.getState() == Player.PREFETCHED) {
player.deallocate();
}
if (player.getState() == Player.REALIZED ||
player.getState() == Player.UNREALIZED) {
player.close();
}
}
player = null;
}
private void play(String url) {
try {
InputStream is = getClass().getResourceAsStream(url);
VideoControl vc;
resetplayer();
// create a player instance
player = Manager.createPlayer(is, this.MIMEtype);
player.prefetch();
player.addPlayerListener(this);
// realize the player
player.realize();
vc = (VideoControl) player.getControl("VideoControl");
if (vc != null) {
vc.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, this);
vc.setDisplayLocation(((this.getWidth() - vc.getDisplayWidth()) /
2),
(this.getHeight() - vc.getDisplayHeight()) /
2);
vc.setVisible(true);
this.setFullScreenMode(true);
}
player.prefetch();
player.start();
this.display.setCurrent(this);
} catch (Throwable t) {
player = null;
nextScreen();
}
}
private void stopPlayer() {
try {
resetplayer();
} catch (MediaException me) {
}
player = null;
}
}
second ,this is example of launch it form midelt,note that all I have to do i just create & initiate new instance of videosplash class
video splash class
package GALAXY.videosplash;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class SplashMIDlet extends MIDlet {
static SplashMIDlet instance;
public SplashMIDlet() {
instance = this;
}
public void startApp() {
Display dispaly = Display.getDisplay(this);
Splash sp = new Splash(dispaly, new Form("Test"),"/PhotoStory.3gp", "video/3gpp");
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public static void quitApp() {
instance.destroyApp(true);
instance.notifyDestroyed();
instance = null;
}
}