×
Namespaces

Variants
Actions

How to play video streaming in Java ME

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata
Article
Created: dcrocha (31 Oct 2007)
Last edited: lpvalente (02 Nov 2013)

Needs-update.pngThis article needs to be updated: If you found this article useful, please fix the problems below then delete the {{ArticleNeedsUpdate}} template from the article to remove this warning.

Reasons: hamishwillee (talk) (29 Jul 2013)
There are many reported errors in the comments.

The simple example MIDlet displays on how to play RTSP video streaming in Java ME.

package example;
 
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Ticker;
import javax.microedition.media.Manager;
import javax.microedition.media.Player;
import javax.microedition.media.PlayerListener;
import javax.microedition.media.control.VideoControl;
 
public class VideoCanvas extends Canvas implements PlayerListener, CommandListener {
 
private ExampleStreamingMIDlet midlet = null;
private Command start = new Command("Start",Command.OK,0);
private Command stop = new Command("Stop",Command.OK,0);
private Command back = new Command("Back",Command.OK,0);
private Command exit = new Command("Exit",Command.BACK,0);
private String url = "rtsp://rtsp.youtube.com/youtube/videos/HtVbAazUekM/video.3gp";
private String status = "Press left softkey";
private String status2 = "";
private Player player = null;
private VideoControl control = null;
 
/**
* Constructor
*
* @param midlet
*/

 
public VideoCanvas(ExampleStreamingMIDlet midlet, String url) {
this.midlet = midlet;
this.url = null;
addCommand(start);
addCommand(stop);
addCommand(back);
addCommand(exit);
setCommandListener(this);
this.setFullScreenMode(true);
}
 
public void commandAction(Command c, Displayable arg1) {
if(c == start) {
start();
}
else if(c == stop) {
stop();
}
else if(c == exit) {
midlet.notifyDestroyed();
}
else if(c == back) {
Display.getDisplay(midlet).setCurrent(midlet.list);
}
 
}
 
/**
* Paint
*/

 
protected void paint(Graphics g) {
g.setColor(255,255,255);
g.fillRect(0,0,getWidth(),getHeight());
g.setColor(0,0,0);
g.drawString(status2,0,0,Graphics.LEFT|Graphics.TOP);
g.drawString(status,getWidth(),getHeight(),Graphics.RIGHT|Graphics.BOTTOM);
}
 
/**
* Start
*
*/

 
public void start() {
try {
player = Manager.createPlayer(url);
player.addPlayerListener(this);
player.realize();
 
//uncomment for video problem with prefetch();
//player.prefetch();
 
// Grab the video control and set it to the current display.
control = (VideoControl)player.getControl("VideoControl");
if (control != null) {
control.initDisplayMode(VideoControl.USE_DIRECT_VIDEO,this);
control.setDisplaySize(176,144);
int width = control.getSourceWidth();
int height = control.getSourceHeight();
status2 = "Before: SW=" + width + "-SH=" + height + "-DW=" + control.getDisplayWidth() + "-DH=" + control.getDisplayHeight();
}
 
player.start();
}
catch(Exception e) {
Alert erro = new Alert("Erro",e.getMessage(),null,AlertType.ERROR);
Display.getDisplay(midlet).setCurrent(erro);
}
}
 
public void stop() {
if(player != null) {
player.deallocate();
player.close();
}
}
 
public void playerUpdate(Player p, String s, Object o) {
status = s;
 
if(p.getState() == Player.STARTED) {
int width = control.getDisplayWidth();
int height = control.getDisplayHeight();
control.setDisplayLocation((getWidth() - width)/2,(getHeight() - height)/2);
control.setVisible(true);
status = s + ": DW=" + width + "-DH=" + height + "-SW=" + control.getSourceWidth() + "-SH=" + control.getSourceHeight();
}
repaint();
setTitle(status);
}
 
 
 
}

dcrocha 13:43, 31 October 2007 (EET)

This page was last modified on 2 November 2013, at 20:37.
97 page views in the last 30 days.
×