希望有高手帮我调试出来,
我现在还没有调试好JAVA捕获屏幕、屏幕录像、播放
//记录屏幕、类似录像
package net.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);//可以指定捕获屏幕区域
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);//捕获制定屏幕矩形区域
fos = new FileOutputStream("C:\\records\\" + i + ".jpg");
JPEGCodec.createJPEGEncoder(fos).encode(image);//图像编码成JPEG
fos.close();
i = i + 1;
Thread.sleep(40);//每秒25帧
}catch(Exception e){
e.printStackTrace();
System.out.println(e);
try{
if (fos != null)fos.close();
}catch(Exception e1){}
}
}
}
}
//播放屏幕录像package net.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);//与录像时每秒帧数一致 }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);
}
}
我现在还没有调试好JAVA捕获屏幕、屏幕录像、播放
//记录屏幕、类似录像
package net.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);//可以指定捕获屏幕区域
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);//捕获制定屏幕矩形区域
fos = new FileOutputStream("C:\\records\\" + i + ".jpg");
JPEGCodec.createJPEGEncoder(fos).encode(image);//图像编码成JPEG
fos.close();
i = i + 1;
Thread.sleep(40);//每秒25帧
}catch(Exception e){
e.printStackTrace();
System.out.println(e);
try{
if (fos != null)fos.close();
}catch(Exception e1){}
}
}
}
}
//播放屏幕录像package net.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);//与录像时每秒帧数一致 }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);
}
}
解决方案 »
- 请教高手,java项目一会能跑起来,一会跑不起来是为什么?
- 一个框架程序编译运行正常,为何不显示结果
- 求救一个java编写的俄罗斯方块程序!一般就行,要求图形用窗口实现。最好每个关键步加上注释
- 将JAVA程序弄成exe可执行程序
- 谁能帮忙解释一下这个算法
- 本程序的功能是把一个字符串作为参数传递给程序,与程序中的字符串比较,如果相等输出“Equal”,否则输出“Unequal”,比如运行程序:jav
- 关于一个JFace的类怎么写一个main方法让它运行起来
- 请问:事件监听器和事件适配器的区别和联系是什么??
- 事件交互,问题
- 模拟登录评论,java
- 求一个好看点的弹出框的样式。
- apache的FTPClient的问题
package chapter08;import javax.swing.*;
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;
@SuppressWarnings("unused")
private JPEGImageEncoder encoder; public WnetWScreenRecorder() {
screenSize = Toolkit.getDefaultToolkit().getScreenSize();
rectangle = new Rectangle(screenSize);// 可以指定捕获屏幕区域
try {
robot = new Robot();
} catch (Exception e) {
e.printStackTrace();
System.out.println(e);
}
} public static void main(String[] args) {
new WnetWScreenRecorder().start();
} public void run() {
FileOutputStream fos = null;
while (true) {
try {
BufferedImage image = robot.createScreenCapture(rectangle);// 捕获制定屏幕矩形区域
fos = new FileOutputStream("C:\\records\\" + i + ".png");
JPEGCodec.createJPEGEncoder(fos).encode(image);// 图像编码成JPEG
fos.close();
i = i + 1;
Thread.sleep(25);// 每秒25帧
} catch (Exception e) {
e.printStackTrace();
System.out.println(e);
try {
if (fos != null)
fos.close();
} catch (Exception e1) {
}
}
}
}
}
//记录屏幕、类似录像
package chapter08;import javax.swing.*;
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;
@SuppressWarnings("unused")
private JPEGImageEncoder encoder; public WnetWScreenRecorder() {
screenSize = Toolkit.getDefaultToolkit().getScreenSize();
rectangle = new Rectangle(screenSize);// 可以指定捕获屏幕区域
try {
robot = new Robot();
} catch (Exception e) {
e.printStackTrace();
System.out.println(e);
}
} public static void main(String[] args) {
new WnetWScreenRecorder().start();
} public void run() {
FileOutputStream fos = null;
while (true) {
try {
BufferedImage image = robot.createScreenCapture(rectangle);// 捕获制定屏幕矩形区域
fos = new FileOutputStream("C:\\records\\" + i + ".png");
JPEGCodec.createJPEGEncoder(fos).encode(image);// 图像编码成JPEG
fos.close();
i = i + 1;
Thread.sleep(25);// 每秒25帧
} catch (Exception e) {
e.printStackTrace();
System.out.println(e);
try {
if (fos != null)
fos.close();
} catch (Exception e1) {
}
}
}
}
}
//记录屏幕、类似录像
package chapter08;import javax.swing.*;
import java.awt.*;
import java.awt.image.*;
import com.sun.image.codec.jpeg.*;
import java.io.*;@SuppressWarnings("serial")
// 播放屏幕录像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.setVisible(true);
} public static void main(String[] args) {
new WnetWScreenRecordPlayer();
}}