You Are Here:

Community: Developer Discussion Boards

#1 Old Video Player Midlet problem - please help - 2004-06-26, 16:00

Join Date: Aug 2003
Posts: 6
Location: UK
L_Tambiah
Offline
Registered User
A begginer in J2me, i am trying to produce a video player. There are two classes at present being VideoPlayerMIDlet and VideoPlayer. On compiling the two classes with wireless toolkit i recieve the following error.

\.....\.....\Src\VideoPlayerMIDlet.java:74: cannot resolve symbol
symbol: method start ()
location: class VideoPlayerMIDlet
start ();

Okay, i understand why this is happening but not sure how to implement the solution.

The VideoPlayerMIDlet contains the MIDlet functions such as startApp, pauseApp, destroyApp and the CommandAction methods. The command action has a command function to activate the start method which is contained in the VideoPlayer.class. Therefore it is unable to find the method as the CommandAction is located in the VideoPlayerMIDlet.

Help would be most appreciated.

I will print the code for the programme below:

VideoPlayerMIDlet.class


//import statements
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import javax.microedition.media.*;

public class VideoPlayerMIDlet extends MIDlet implements
CommandListener, PlayerListener {

public Display display;
public Player player;
public Command startCommand, exitCommand, stopCommand;
private Form form;
private TextField url;


public VideoPlayerMIDlet() {


display = Display.getDisplay(this);

startCommand = new Command("Play", Command.SCREEN, 1);
exitCommand = new Command("Exit", Command.SCREEN, 2);

form = new Form("Demo Player");
url = new TextField("Enter URL:", "", 100,
TextField.URL);

form.append(url);
form.addCommand(startCommand);
form.addCommand(exitCommand);
form.setCommandListener(this);
display.setCurrent(form);
}
protected void startApp() {
try {
if(player != null && player.getState() == Player.PREFETCHED) {
player.start();
}else {
defplayer();
display.setCurrent(form);
}
}catch(MediaException me) {
reset();
}
}

protected void pauseApp() {
try {
if(player != null && player.getState() == Player.STARTED) {
player.stop();
}else{
defplayer();
display.setCurrent(form);
}
}catch(MediaException me) {
reset();
}
}

protected void destroyApp(boolean unconditional) {
form = null;
try {
defplayer();
}catch(MediaException me) {
}
}


public void commandAction(Command c, Displayable s) {

if(c == startCommand) {
start(); // THIS IS WHERE THE PROBLEM LIES IT IS LOOKING FOR START() CONTAINED
// IN VIDEOPLAYER.CLASS
}
//exit command
if (c == exitCommand) {
destroyApp(false);
notifyDestroyed();
}
}
public void playerUpdate(Player player, String event, Object data) {
if(event == PlayerListener.END_OF_MEDIA) {
try {
defplayer();
}
catch(MediaException me) {
}
reset();
}
}
public void defplayer() 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;
}

void reset() {
player = null;
}
}

VideoPlayer.class


/**class for player*/

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

public class VideoPlayer implements Runnable {

private VideoPlayerMIDlet controller;
private TextField url;



public VideoPlayer(VideoPlayerMIDlet controller) {
this.controller = controller;
}

public void start() {
Thread t = new Thread(this);
t.start();
}
public void run() {
play(getURL());
}
String getURL() {
return url.getString();
}
void play(String url) {
try {

VideoControl vc;
controller.defplayer();

controller.player = Manager.createPlayer("http://www.leetambiah.pwp.blueyonder.co.uk/diss.mpg");

controller.player.realize();

vc = (VideoControl)controller.player.getControl("VideoControl");
if(vc != null) {
Item video = (Item)vc.initDisplayMode (
vc.USE_GUI_PRIMITIVE, null);

Form v = new Form("Playing Video...");

StringItem si = new StringItem("Status:",
"Playing...");

v.append(si);
v.append(video);
v.addCommand(controller.startCommand);
v.addCommand(controller.stopCommand);
v.setCommandListener(controller);
controller.display.setCurrent(v);
}
controller.player.prefetch();
controller.player.start();
}catch(Throwable t)
{
controller.reset();
}
}
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

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