http://blog.csdn.net/njchenyi/article/details/447554
capturing screen, screen recording, and playback in JavaTags: javaexceptionimageimportnullstring2005-08-07 10:07 4739 People read Comments (2) favorite reports Classification:JAVA (158)
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
Record screen, similar video package com.wnetw.project.media; Import java.awt.*;
Import java.awt.image.*;
Import com.sun.image.codec.jpeg.*;
Import java.io.*;
public class Wnetwscreenrecorder extends thread{
Private Dimension screensize;
Private Rectangle Rectangle;
Private Robot Robot;
Private long i = 0;
Private JPEGImageEncoder encoder; Public Wnetwscreenrecord () {
ScreenSize = Toolkit.getdefaulttoolkit (). Getscreensize ();
Rectangle = new Rectangle (screensize);//You can specify the capture screen area
try{
Robot = new Robot ();
}catch (Exception e) {
E.printstacktrace ();
System.out.println (e);
}
} public static void Main (string[] args) {
New Wnetwscreenrecord (). Start ();
} public void Run () {
FileOutputStream fos = null;
while (true) {
try{
BufferedImage image = Robot.createscreencapture (rectangle);//capture make screen rectangular area
FOS = new FileOutputStream ("c://records//" + i + ". jpg");
Jpegcodec.createjpegencoder (FOS). Encode (image);//images encoded as JPEG
Fos.close ();
i = i + 1;
Thread.Sleep (40);//25 frames per second
}catch (Exception e) {
E.printstacktrace ();
System.out.println (e);
try{
if (fos! = null) fos.close ();
}catch (Exception E1) {}
}
}
}
}
Play a screen recording
Package Com.wnetw.project.media;
Import java.awt.*;
Import javax.swing.*;
Import java.io.*;
public class Wnetwscreenrecordplayer extends jframe{
BorderLayout borderLayout1 = new BorderLayout ();
Dimension screensize;
Public Wnetwscreenrecordplayer () {
Super ();
ScreenSize = Toolkit.getdefaulttoolkit (). Getscreensize ();
This.setsize (screensize);
Screen p = new screen ();
Container C = This.getcontentpane ();
C.setlayout (BORDERLAYOUT1);
C.add (P, "Center");
New Thread (P). Start ();
This.show ();
}
public static void Main (string[] args) {
New Wnetwscreenrecordplayer ();
}
}
Class Screen extends JPanel implements runnable{
Private BorderLayout borderLayout1 = new BorderLayout ();
Private Image CImage;
public void Run () {
int i = 0;
while (true) {
try{
CImage = LoadImage (i + ". jpg");
i = i + 1;
Repaint ();
Thread.Sleep (40);//consistent with the number of frames per second when recording
}catch (Exception e) {
E.printstacktrace ();
System.out.println (e);
}
}
}
Public Image LoadImage (String name) {
Toolkit tk = Toolkit.getdefaulttoolkit ();
Image image = null;
Image = Tk.getimage ("c:/records/" + name);
Mediatracker MT = new Mediatracker (this);
Mt.addimage (image, 0);
try {
Mt.waitforid (0);
}catch (Exception e) {
E.printstacktrace ();
System.out.println (e);
}
return image;
}
Public screen () {
Super ();
This.setlayout (NULL);
}
public void Paint (Graphics g) {
Super.paint (g);
graphics2d g2 = (graphics2d) g;
G2.drawimage (cimage, 0, 0, NULL);
}
}
Capturing screen, screen recording, and playback in Java