//记录屏幕、类似录像

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);//可以指定捕获屏幕区域

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 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);//与录像时每秒帧数一致

}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捕获屏幕、屏幕录像、播放相关推荐

  1. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  2. java try catch嵌套_解析Java中未被捕获的异常以及try语句的嵌套使用

    Java未被捕获的异常 在你学习在程序中处理异常之前,看一看如果你不处理它们会有什么情况发生是很有好处的.下面的小程序包括一个故意导致被零除错误的表达式. class Exc0 { public st ...

  3. java课程设计拼图_基于Java拼图游戏的设计与实现(含录像)

    基于拼图游戏的设计与实现(含录像) 摘    要 本拼图游戏是基于J2SE平台开发的,它是一个Application,它的游戏规则和诺亚舟里的拼图游戏是一样的.这个游戏将一张大图切割成N张小图,然后在 ...

  4. java 写字板源代码_基于JAVA的模拟写字板的设计与实现(含录像)

    基于的模拟写字板的设计与实现(含录像)(任务书,开题报告,中期检查表,外文翻译,毕业论文18800字,程序代码,答辩PPT,答辩视频录像) 摘要 目前,很多新的技术领域都涉及到了Java语言,Java ...

  5. java网页作业提交_基于JAVA网上作业提交批改系统的设计(SQL)(含录像)

    基于JAVA网上作业提交批改系统的设计(SQL)(含录像)(毕业论文15000字,程序代码,SQLserver数据库) 摘  要 随着社会的进步,网络技术的发展为教育界提供了一片崭新的空间,传统的教学 ...

  6. java是什么格式_是java格式

    错误:编码GBK的不可映射字符的解决办法 最近在重新补javaSE的基础,编辑器编写完代码以后,在控制台运行代码段的时候,出现了以下的错误提示:错误:编码GBK的不可映射字符 在通过查询谷哥和度娘以后 ...

  7. java 异常处理发生异常_处理Java中的异常

    java 异常处理发生异常 每个程序员都希望编写一个完美的程序. 也就是说,程序运行时没有任何障碍. 好吧,如果希望是马,乞g就会骑. 除了程序员的所有愿望之外,有时还会发生无法预料的情况. 在Jav ...

  8. java ee开发环境_设置Java EE 6开发环境

    java ee开发环境 本教程简要说明了如何设置典型的环境来开发基于Java EE 6的应用程序. 除了可以正常工作的Windows XP客户端具有足够的CPU能力和内存外,本教程没有其他先决条件. ...

  9. java使用外部库_在Java中使用外部库

    java使用外部库 Java附带了一组核心库,其中包括定义常用数据类型和相关行为的库,例如String或Date : 与主机操作系统进行交互的实用程序,例如System或File : 有用的子系统来管 ...

  10. java学习是什么_学习JAVA有什么作用?

    1.可以做WEB系统,如网站,不过做网站就有点杀鸡用牛到了.用的最62616964757a686964616fe4b893e5b19e31333431343631多的就是用JAVA做管理系统,很容易维 ...

最新文章

  1. 增强我们的Visual Studio(更新中)
  2. [HAOI2007]上升序列
  3. Gartner:云安全的未来,是安全访问服务边缘架构
  4. [交叉验证]机器学习中分类器的选择
  5. shell编程cp强制覆盖拷贝时仍需确认问题的处理方法
  6. 反向代理和负载均衡有何区别?
  7. 使用Screaming Frog SEO Spider 如何查找断开的链接
  8. USGS网站中STRM DEM数据批量下载
  9. MIMO系统信号检测之MMSE推论
  10. Microsoft-Yahoo: Not Again. Why Again?
  11. spring事务REQUIRED REQUIRES_NEW区别
  12. 教你制作QQ空间超高连通率背景音乐链接。
  13. STM32H7的终极调试组件Event Recorder
  14. ElasticSearch快速入门
  15. Edge浏览器怎么降级到旧版本?
  16. 【日常学习】【数学】codevs3625 士兵站队问题题解
  17. Atcoder AGC B Splatter Painting 记忆化+逆向模拟
  18. IG中最多案赞数居然是一棵蛋?!网友共同合作打破美国女星记录
  19. c语言ceiling函数怎么用,ceiling函数 ceiling函数用法
  20. Spring Boot 2 实践记录之 MyBatis 集成的启动时警告信息问题

热门文章

  1. 进销存excel_进销存管理系统excel模板
  2. win10pe命令打开计算机,Win10是怎么进入安全模式
  3. Python + ElasticSearch:有了这个超级武器,你也可以报名参加诗词大会了!
  4. MAC-终端命令大全
  5. 麟龙指标通达信指标公式源码_通达信麟龙指标套三主图+副图指标 贴图
  6. c语言写一个五子棋小游戏
  7. oppo a57刷机成功教程
  8. js 手机号码正则
  9. 我的世界java版如何加披风_我的世界正版披风怎么换
  10. PTA-Python题库(浙大版Python程序设计教材对应练习) 题解索引