Skip to Main Content

Java Programming

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Screen Recorder

807580Nov 8 2009 — edited Nov 10 2009
I'm trying to create a screen recorder in java, my program, so far - captures an image every 142 milliseconds, what I need is to compress these images into an avi or mov file.

Here is my code so far (which I have compiled and ran, it works fine):
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JPanel;
import java.awt.Dimension;
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.*;
import javax.imageio.ImageIO;

public class CFRecorder {
 JButton button = new JButton("Record");
 int delay = 142;
 long count = 0;
 boolean pause = false;
 BufferedImage screencapture;
 Thread record = new Thread(new Runnable() {
      public void run() {
       while(!pause) {
        try {
        screencapture = new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
        } catch(AWTException awt) { }

        File file = new File("image"+count+".jpg");
        count++;
        try {
         ImageIO.write(screencapture, "jpg", file);
         Thread.sleep(delay);
        } catch(IOException io) { }
       }
      }
   });
 public CFRecorder() {
  JFrame frame = new JFrame("CFRecorder");

  button.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {
        record.start();
       }
    });
    
  frame.add(button);

  frame.pack();
  frame.setSize(new Dimension(300, 200));
  frame.setVisible(true);
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }
 public static void main(String[] args) {
  new CFRecorder();
 }
}
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Dec 8 2009
Added on Nov 8 2009
6 comments
199 views