Video Capturing and Recording
Hi
I want to capture and record a video on my nokia n73.and for that i have got one code but when i run this code on my mobile phone it dont work.
I am submitting my code can some body please tell me what i need to change.
Thanks
Vineet
import java.io.IOException;
import javax.microedition.lcdui.*;
import javax.microedition.media.*;
import javax.microedition.media.control.*;
import javax.microedition.midlet.MIDlet;
import javax.microedition.media.control.VideoControl;
import javax.microedition.media.control.RecordControl;
import java.io.ByteArrayOutputStream;
public class VideoMIDlet extends MIDlet implements CommandListener
{
private Display display;
private Form form;
private Command exit, back, capture, camera,stopRecord,Record;
private Player player;
private VideoControl videoControl;
private Video video;
private RecordControl rControl = null;
ByteArrayOutputStream bos = null;
public VideoMIDlet()
{
exit = new Command("Exit", Command.EXIT, 0);
camera = new Command("Camera", Command.SCREEN, 2);
back = new Command("Back", Command.BACK, 0);
capture = new Command("Capture", Command.SCREEN, 2);
Record = new Command("Record", Command.SCREEN, 2);
stopRecord = new Command("stopRecord", Command.SCREEN, 3);
form = new Form("Capture Video");
form.addCommand(camera);
form.setCommandListener(this);
}
public void startApp()
{
display = Display.getDisplay(this);
display.setCurrent(form);
}
public void pauseApp() { }
public void destroyApp(boolean unconditional) { }
public void commandAction(Command c, Displayable s)
{
if (c == exit)
{
destroyApp(true);
notifyDestroyed();
}
else if (c == camera)
{
showCamera();
}
else if (c == back)
display.setCurrent(form);
else if (c == capture)
{
video = new Video(this);
video.start();
}
else if (c == Record)
{
try
{
RecordControl rControl = (RecordControl)player.getControl("RecordControl");
if (rControl == null) throw new Exception("No Record control found");
bos = new ByteArrayOutputStream();
rControl.setRecordStream(bos);
rControl.startRecord();
recording = true;
}
catch (Exception ioe) { }
//catch (MediaException me) { }
}
else if (c == stopRecord)
{
try
{
rControl.stopRecord();
rControl.commit();
recording = false;
}
catch (IOException ioe) { }
//catch (MediaException me) { }
}
}
public void showCamera()
{
try
{
//Form mcanvas = new Form("camera");
player = Manager.createPlayer("capture://video");
player.realize();
VideoControl vc = (VideoControl)player.getControl("VideoControl");
Canvas canvas = new VideoCanvas(this, videoControl);
//mcanvas.addCommand(back);
canvas.addCommand(capture);
//mcanvas.addCommand(Record);
//mcanvas.addCommand(stopRecord);
canvas.setCommandListener(this);
display.setCurrent(canvas);
player.start();
}
catch (IOException ioe) { }
catch (MediaException me) { }
}
private boolean recording = false;
class Video extends Thread
{
VideoMIDlet midlet;
public Video(VideoMIDlet midlet)
{
this.midlet = midlet;
}
public void run()
{
captureVideo();
}
}
public void captureVideo()
{
try
{
byte[] raw = videoControl.getSnapshot(null);
Image image = Image.createImage(raw, 0, raw.length);
form.append(image);
display.setCurrent(form);
player.close();
player = null;
videoControl = null;
}
catch (MediaException me) { }
}
}
****************************************************************
import javax.microedition.lcdui.*;
import javax.microedition.media.MediaException;
import javax.microedition.media.control.VideoControl;
public class VideoCanvas extends Canvas {
private VideoMIDlet midlet;
public VideoCanvas(VideoMIDlet midlet, VideoControl videoControl) {
int width = getWidth();
int height = getHeight();
this.midlet = midlet;
videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, this);
try {
videoControl.setDisplayLocation(2, 2);
videoControl.setDisplaySize(width - 4, height - 4);
} catch (MediaException me) {}
videoControl.setVisible(true);
}
public void paint(Graphics g) {
int width = getWidth();
int height = getHeight();
g.setColor(0x00ff00);
g.drawRect(0, 0, width - 1, height - 1);
g.drawRect(1, 1, width - 3, height - 3);
}
}
Re: Video Capturing and Recording
What happens? Exceptions? The program does not start?
You need to provide more information as we do not have time to build and debug your MIDlet on our devices...
Hartti
Re: Video Capturing and Recording
Hello Hartti
I am not getting any exceptions or errors but even than the program is not executing. Its just showing a blank page.
Kindly check it once..
Thanks
Vineet
Re: Video Capturing and Recording
You do not even get the Camera command in there?
Hartti
Re: Video Capturing and Recording
Hi,
Check and go through your code.It is due that your camera is not start yet.Or your camera is not ready to start.Check and debug the code.You can do so by your own.No one have so much time that he /she will make a project ,will compile and then testing.
make some system.out.println() or put break point out.
enjoyee
Re: Video Capturing and Recording
Hi Everyone...
No i am not getting any camera command in my phone.
I tried to do every thing so far up to my knowledge in j2me But could not get it thats why i need your help and suggestions.
Can some please tell what i need to change in the following code..
Sorry for any trouble.
Thanks
vineet