Hi everyone. I'm currently doing my final year project and I'm really short of time. I'll really appreciate your help.
I want to recieve the rtsp stream and play it in my nokia e65 ( symbian s60 v3 ).
I do the streaming from my laptop with VLC media player with proper encoding for mobile( I do the stream of my webcam ), I checked if it works or not from another pc in my network, and I can recieve the stream when I try the link "rtsp://ipaddress:554/webcam.sdp" with quicktime .
I checked if my phone supports rtsp and sdp, and get the result as it supports rtsp protocol for "application/sdp" file type.
so I started my mobile application, but I get the problem "Cannot create player for rtsp://ipaddress:554/webcam.sdp".
Can you please check my code ? or provide me with some other alternatives to do this.
I've checked internet for some kind of application like this but all I got was streaming applications for video on demand systems. I never saw someting for sdp.
here's my code for video
Code://imports here public class VideoCanvas extends Canvas implements PlayerListener, CommandListener { private Command start; private Command stop; private Command back; private Command exit; private String url; private String status; private String status2; private Player player; private VideoControl control; public VideoCanvas(String url) // the url is "rtsp://ipaddress:554/webcam.sdp" { start = new Command("Start",Command.OK,0); stop = new Command("Stop",Command.OK,0); back = new Command("Back",Command.OK,0); exit = new Command("Exit",Command.BACK,0); status = "Press left softkey"; status2 = ""; player = null; control = null; this.url = url; addCommand(start); addCommand(stop); addCommand(back); addCommand(exit); setCommandListener(this); this.setFullScreenMode(true); } public void commandAction(Command c, Displayable d) { if(c == start) { start(); } else if(c == stop) { stop(); } else if(c == exit) { Main.midlet.notifyDestroyed(); } else if(c == back) { Main.mobileDisplay.setCurrent(Main.loginForm); } } 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); } public void start() { try { player = Manager.createPlayer(url); player.addPlayerListener(this); player.realize(); // 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); Main.mobileDisplay.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); } }

Reply With Quote

