You Are Here:

Community: Wiki

This page was last modified 11:41, 31 October 2007.

Como usar video streaming em Java ME

From Forum Nokia Wiki

Aqui vai um exemplo de código para assistir streaming de video em Java ME

dcrocha 13:41, 31 October 2007 (EET)

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);
	}
	
	
 
}

Rate This

 
Bookmark this page: DeliciousDiggFacebookGoogleYahooStumbleUponRedditFurlTechnocratiMagnoliaTwitter  Share this page Share this page Print this Page Print this page Invite a friend Invite a friend
Email Newsletters Press Terms & Conditions Privacy Policy Sitemap Contact Us © 2009 Nokia 
RDF Facets: qdcZdescriptionQSxEa0E20WikiE20javaE20symbianE5fosE20s60E20maemoE20cE2bE2bE20WikiE20HomeE20WikiE20HelpE20OverviewE20GlossaryE20CreateE20PageE20ProposeE20anE20ArticleE20SpotlightE20TopicE20E2dE20WE52TE20WidgetsE20ProgrammingE20E4canguageE20E2dE20SymbianE20CE2bE2bE20E2dE20OpenE20CE2fCE2bE2bE20E2dE20JavaE20E2dE20FlashE20E4citeE20E2dE20PythonE20WebE20TechnologiesE20E2dE20WE52TE20WidgetsE20E2dE20WidSetsE20ToolsE20andE20SE44KE20CodeE20E45E78amplesE20KnowledgeE20BaseE20TechnologyE20AreasE20SoftwareE20PlatformsE20E44evelopmentE20ProcessE20E3fE3fWikiE20ChineseE20E3fE3fE3fWikiE20JapaneseE20PortugueseE2fBrazilianE20E52ussianE20WhatE20linksE20hereE20UploadE20fileE20SpecialE20pagesE20PrintableE20versionE44ownloadE20asE20PE44FE20GoE20ToE20E2eE2eE2eX qdcZidentifierQSxhttpE3aE2fE2fwikiE2eforumE2enokiaE2ecomE2findeE78E2ephpE2fHowE5ftoE5fknowE5ffaE78E5flineE5fstatusX qdcZpublisherQUxhttpE3aE2fE2fswE2enokiaE2ecomE2fidE2fc764fd1cE2d8b06E2d499aE2d9a6aE2d17c3903d5a65E2fforumE5fnokiaE5fcrawlerE5fagentX qdcZtitleQSxHowE20toE20knowE20faE78E20lineE20statusE20E2dE20ForumE20NokiaE20WikiX qdcZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qdcZtypeQUqfnTypeZCommunityContentQ qdcZtypeQUqfnTypeZE52esourceQ qdcZtypeQUqfnTypeZWebpageQ qdcZtypeQUqfnTypeZWikiContentQ qdcZtypeQUqmarsZManagedE52esourceQ qdcZtypeQUqwebZInformationE52esourceQ qdcZtypeQUqwebZPageQ qdcZtypeQUqwebZE52esourceQ qdcZtypeQUqrdfsZE52esourceQ qrssZdescriptionQSxEa0E20WikiE20javaE20symbianE5fosE20s60E20maemoE20cE2bE2bE20WikiE20HomeE20WikiE20HelpE20OverviewE20GlossaryE20CreateE20PageE20ProposeE20anE20ArticleE20SpotlightE20TopicE20E2dE20WE52TE20WidgetsE20ProgrammingE20E4canguageE20E2dE20SymbianE20CE2bE2bE20E2dE20OpenE20CE2fCE2bE2bE20E2dE20JavaE20E2dE20FlashE20E4citeE20E2dE20PythonE20WebE20TechnologiesE20E2dE20WE52TE20WidgetsE20E2dE20WidSetsE20ToolsE20andE20SE44KE20CodeE20E45E78amplesE20KnowledgeE20BaseE20TechnologyE20AreasE20SoftwareE20PlatformsE20E44evelopmentE20ProcessE20E3fE3fWikiE20ChineseE20E3fE3fE3fWikiE20JapaneseE20PortugueseE2fBrazilianE20E52ussianE20WhatE20linksE20hereE20UploadE20fileE20SpecialE20pagesE20PrintableE20versionE44ownloadE20asE20PE44FE20GoE20ToE20E2eE2eE2eX qfnZdistributionQUxhttpE3aE2fE2fwikiE2eforumE2enokiaE2ecomE2fX qfnZtypeQUqfnTypeZCommunityContentQ qfnZtypeQUqfnTypeZE52esourceQ qfnZtypeQUqfnTypeZWebpageQ qfnZtypeQUqfnTypeZWikiContentQ qfnZupdatedQDx2008E2d10E2d02X qmarsZdescriptionQSxEa0E20WikiE20javaE20symbianE5fosE20s60E20maemoE20cE2bE2bE20WikiE20HomeE20WikiE20HelpE20OverviewE20GlossaryE20CreateE20PageE20ProposeE20anE20ArticleE20SpotlightE20TopicE20E2dE20WE52TE20WidgetsE20ProgrammingE20E4canguageE20E2dE20SymbianE20CE2bE2bE20E2dE20OpenE20CE2fCE2bE2bE20E2dE20JavaE20E2dE20FlashE20E4citeE20E2dE20PythonE20WebE20TechnologiesE20E2dE20WE52TE20WidgetsE20E2dE20WidSetsE20ToolsE20andE20SE44KE20CodeE20E45E78amplesE20KnowledgeE20BaseE20TechnologyE20AreasE20SoftwareE20PlatformsE20E44evelopmentE20ProcessE20E3fE3fWikiE20ChineseE20E3fE3fE3fWikiE20JapaneseE20PortugueseE2fBrazilianE20E52ussianE20WhatE20linksE20hereE20UploadE20fileE20SpecialE20pagesE20PrintableE20versionE44ownloadE20asE20PE44FE20GoE20ToE20E2eE2eE2eX qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX qrdfZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qrdfZtypeQUqfnTypeZCommunityContentQ qrdfZtypeQUqfnTypeZE52esourceQ qrdfZtypeQUqfnTypeZWebpageQ qrdfZtypeQUqfnTypeZWikiContentQ qrdfZtypeQUqmarsZManagedE52esourceQ qrdfZtypeQUqwebZInformationE52esourceQ qrdfZtypeQUqwebZPageQ qrdfZtypeQUqwebZE52esourceQ qrdfZtypeQUqrdfsZE52esourceQ