You Are Here:

Community: Developer Discussion Boards

#1 Old application error with 3gp file in J2ME - 2006-11-07, 11:40

Join Date: Sep 2006
Posts: 51
ruchig_iic's Avatar
ruchig_iic
Offline
Regular Contributor
Hi all ,

i had created one video player which is used to play 3gp file, MPEG file and an audio file using MMAPI and J2ME application.
i used J2ME wireless toolkit for this video player its working in J2ME wireless tool kit but when i install that application using .jad and .jar file its not working on a real device(sony ericsson K750i). it shows an application error in that.. what should i do.
i am sending u my src file midlet please tell me where is the problem.


import java.util.Hashtable;
import java.util.Enumeration;

import javax.microedition.lcdui.Item;
import javax.microedition.lcdui.List;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.CommandListener;

import javax.microedition.media.Player;
import javax.microedition.media.Control;
import javax.microedition.media.Manager;
import javax.microedition.media.PlayerListener;
import javax.microedition.media.control.VideoControl;

public class MediaMIDlet extends MIDlet
implements CommandListener, PlayerListener {

private Display display;
private List itemList;
private Form form;

private Command stopCommand;
private Command pauseCommand;
private Command startCommand;

private Hashtable items;
private Hashtable itemsInfo;

private Player player;

public MediaMIDlet() {

display = Display.getDisplay(this);

// creates an item list to let you select multimedia files to play
itemList = new List("Select an item to play", List.IMPLICIT);

// stop, pause and restart commands
stopCommand = new Command("Stop", Command.STOP, 1);
pauseCommand = new Command("Pause", Command.ITEM, 1);
startCommand = new Command("Start", Command.ITEM, 1);

// a form to display when items are being played
form = new Form("Playing media");

// the form acts as the interface to stop and pause the media
form.addCommand(stopCommand);
form.addCommand(pauseCommand);
form.setCommandListener(this);

// create a hashtable of items
items = new Hashtable();

// and a hashtable to hold information about them
itemsInfo = new Hashtable();

// and populate both of them


items.put("Siren from jar", "file://siren.wav");
itemsInfo.put("Siren from jar", "audio/x-wav");

items.put("Promo Video from jar", "file://promo.mpg");
itemsInfo.put("Promo Video from jar", "video/mpeg");

items.put("Video 3GP from jar", "file://l23.3gp");
itemsInfo.put("Video 3GP from jar", "video/3gpp");

}

public void startApp() {

// when MIDlet is started, use the item list to display elements
for(Enumeration en = items.keys(); en.hasMoreElements();) {
itemList.append((String)en.nextElement(), null);
}

itemList.setCommandListener(this);

// show the list when MIDlet is started
display.setCurrent(itemList);
}

public void pauseApp() {
// pause the player
try {
if(player != null) player.stop();
} catch(Exception e) {}
}

public void destroyApp(boolean unconditional) {
if(player != null) player.close(); // close the player
}

public void commandAction(Command command, Displayable disp) {

// generic command handler

// if list is displayed, the user wants to play the item
if(disp instanceof List) {
List list = ((List)disp);

String key = list.getString(list.getSelectedIndex());

// try and play the selected file
try {
playMedia((String)items.get(key), key);
} catch (Exception e) {
System.err.println("Unable to play: " + e);
e.printStackTrace();
}
} else if(disp instanceof Form) {

// if showing form, means the media is being played
// and the user is trying to stop or pause the player
try {

if(command == stopCommand) { // if stopping the media play

player.close(); // close the player
display.setCurrent(itemList); // redisplay the list of media
form.removeCommand(startCommand); // remove the start command
form.addCommand(pauseCommand); // add the pause command

} else if(command == pauseCommand) { // if pausing

player.stop(); // pauses the media, note that it is called stop
form.removeCommand(pauseCommand); // remove the pause command
form.addCommand(startCommand); // add the start (restart) command
} else if(command == startCommand) { // if restarting

player.start(); // starts from where the last pause was called
form.removeCommand(startCommand);
form.addCommand(pauseCommand);
}
} catch(Exception e) {
System.err.println(e);
}
}

}

/* Creates Player and plays media for the first time */
private void playMedia(String locator, String key) throws Exception {

// locate the actual file, we are only dealing
// with file based media here
String file = locator.substring(
locator.indexOf("file://") + 6,
locator.length());

// create the player
// loading it as a resource and using information about it
// from the itemsInfo hashtable
player =
Manager.createPlayer(
getClass().getResourceAsStream(file), (String)itemsInfo.get(key));

// a listener to handle player events like starting, closing etc
player.addPlayerListener(this);

player.setLoopCount(-1); // play indefinitely
player.prefetch(); // prefetch
player.realize(); // realize

player.start(); // and start

}

/* Handle player events */
public void playerUpdate(Player player, String event, Object eventData) {

// if the event is that the player has started, show the form
// but only if the event data indicates that the event relates to newly
// stated player, as the STARTED event is fired even if a player is
// restarted. Note that eventData indicates the time at which the start
// event is fired.
if(event.equals(PlayerListener.STARTED) &&
new Long(0L).equals((Long)eventData)) {

// see if we can show a video control, depending on whether the media
// is a video or not
VideoControl vc = null;
if((vc = (VideoControl)player.getControl("VideoControl")) != null) {
Item videoDisp =
(Item)vc.initDisplayMode(vc.USE_GUI_PRIMITIVE, null);
form.append(videoDisp);
}

display.setCurrent(form);
} else if(event.equals(PlayerListener.CLOSED)) {

form.deleteAll(); // clears the form of any previous controls
}
}

}


Regards
Ruchi
ruchi.gupta@bhartitelesoft.com
Reply With Quote

#2 Old Re: application error with 3gp file in J2ME - 2006-11-10, 03:16

Join Date: Dec 2005
Posts: 1,696
Location: Europe/Poland/Warsaw
peterblazejewicz
Offline
Super Contributor
hi,

fyi: here is SE example article (+files) about MMAPI (135) playback from resource files:
http://developer.sonyericsson.com/si...diomidp2.0.jsp

regards,
Peter
Reply With Quote

#3 Old Re: application error with 3gp file in J2ME - 2007-11-06, 15:58

Join Date: Apr 2006
Posts: 5
manaspaira
Offline
Registered User
Hi,

can some body send me the application which helps in playing the 3gp video file in J2ME.


here is the code below:

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

import java.io.*;

import javax.microedition.io.*;
import javax.microedition.media.*;
import javax.microedition.media.control.*;

public class MIDlet1 extends MIDlet {
private static MIDlet1 instance;


/** Constructor */
public MIDlet1() {
instance = this;
}

/** Main method */
public void startApp() {

System.out.println("Hello World 2 from Middlet startApp()");
InputStream dis =null;

try {

HttpConnection c = (HttpConnection)Connector.open("http://localhost:8080/VideoStreaming/San.3gpp", Connector.READ);


System.out.println("after");

dis = c.openInputStream();

System.out.println(dis.available());
}
catch(Exception e) {
e.printStackTrace();
}

Canvas canvas = new Canvas() {
public void paint(Graphics g) {
g.setColor(255, 0, 0);
g.fillRect(0, 0, getWidth(), getHeight( ));
g.setColor(255, 255, 255);
g.drawString("Hello World!", 0, 0, g.TOP | g.LEFT);
}
};

Display display = Display.getDisplay(this);
display.setCurrent(canvas);

if ( dis != null) {

System.out.println("Trying to access player...");

try {
Player p = Manager.createPlayer(dis, "video/3gpp");
// Player p = Manager.createPlayer(dis, "video/mpeg");

p.realize();
VideoControl vc;
if ( (vc = (VideoControl) p.getControl("VideoControl")) != null) {
vc.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, canvas);
vc.setDisplayLocation(0,0);
vc.setDisplaySize(100,100);
vc.setVisible(true);
}
p.start();
System.out.println("duration: " + p.getDuration());
}
catch (MediaException pe) {
pe.printStackTrace();
}
catch (IOException ioe) {
ioe.printStackTrace();
}
}

}

/** Handle pausing the MIDlet */
public void pauseApp() {
}

/** Handle destroying the MIDlet */
public void destroyApp(boolean unconditional) {
}

/** Quit the MIDlet */
public static void quitApp() {
instance.destroyApp(true);
instance.notifyDestroyed();
instance = null;
}


}


ERROR: getting the following error

javax.microedition.media.MediaException: Cannot create a Player for: video/3gpp

trie da lot to solve but couldn't.

please help me.

not able to run the video file in emulator neither in phone(Nokia 6681)
Reply With Quote

#4 Old Re: application error with 3gp file in J2ME - 2007-11-06, 18:06

Join Date: Jun 2005
Posts: 928
dcrocha's Avatar
dcrocha
Offline
Forum Nokia Expert
Quote:
ERROR: getting the following error

javax.microedition.media.MediaException: Cannot create a Player for: video/3gpp
Try a newer emulator, or a Prototype SDK. What this message tells you is that the emulator you're using does not support playing 3gp videos from Java. Also, you need to make sure you have a web server running where the video is hosted...

Daniel
Reply With Quote
Reply « Previous Thread | Next Thread »
Display Modes
Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules

You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are Off
[IMG] code is Off
HTML code is Off
Forum Jump
Similar Threads
Thread Thread Starter Forum Replies Last Post
How can the WAP browser communicate to J2ME application? hbfornies Mobile Java General 20 2007-03-02 17:32
any application of alarm server that activates the sound file? memosen80 General Symbian C++ 9 2006-05-11 22:13
Start a J2ME application by OTA hbfornies Mobile Java Networking & Messaging & Security 1 2003-09-24 18:14
Start a J2ME application by OTA hbfornies Mobile Java General 1 2003-09-23 11:01
merging 2 sis file of same application amardeep General Symbian C++ 2 2003-04-25 08:48

Rate This

 
Bookmark this page: DeliciousDiggFacebookGoogleYahooStumbleUponRedditDiigoTechnocratiTwitter  Share this page Share this page Print this Page Print this page Invite a friend Invite a friend
京ICP备05048969号    Email Newsletters Press Terms & Conditions Privacy Policy Sitemap Contact Us © 2009 Nokia 
RDF Facets: qdcZidentifierQSxhttpE3aE2fE2fdiscussionE2eforumE2enokiaE2ecomE2fforumE2fshowthreadE2ephpE3ftE3d134434X qdcZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qdcZtypeQUqfntypeZCommunityContentQ qdcZtypeQUqfntypeZE44iscussionQ qdcZtypeQUqfntypeZE44iscussionContentQ qdcZtypeQUqfntypeZE52esourceQ qdcZtypeQUqfntypeZWebpageQ qdcZtypeQUqmarsZManagedE52esourceQ qdcZtypeQUqwebZInformationE52esourceQ qdcZtypeQUqwebZPageQ qdcZtypeQUqwebZE52esourceQ qdcZtypeQUqrdfsZE52esourceQ qfnZtopicQUqfnTopicZentertainmentQ qfnZtopicQUqfnTopicZj2meQ qfnZtopicQUqfnTopicZjavaQ qfnZtopicQUqfnTopicZmediaQ qfnZtypeQUqfntypeZCommunityContentQ qfnZtypeQUqfntypeZE44iscussionQ qfnZtypeQUqfntypeZE44iscussionContentQ qfnZtypeQUqfntypeZE52esourceQ qfnZtypeQUqfntypeZWebpageQ qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX qrdfZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qrdfZtypeQUqfntypeZCommunityContentQ qrdfZtypeQUqfntypeZE44iscussionQ qrdfZtypeQUqfntypeZE44iscussionContentQ qrdfZtypeQUqfntypeZE52esourceQ qrdfZtypeQUqfntypeZWebpageQ qrdfZtypeQUqmarsZManagedE52esourceQ qrdfZtypeQUqwebZInformationE52esourceQ qrdfZtypeQUqwebZPageQ qrdfZtypeQUqwebZE52esourceQ qrdfZtypeQUqrdfsZE52esourceQ