java 实现屏幕录像_用JAVA捕获屏幕、屏幕录像、播放
//记录屏幕、类似录像
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捕获屏幕、屏幕录像、播放相关推荐
- java项目----教务管理系统_基于Java的教务管理系统
java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...
- java try catch嵌套_解析Java中未被捕获的异常以及try语句的嵌套使用
Java未被捕获的异常 在你学习在程序中处理异常之前,看一看如果你不处理它们会有什么情况发生是很有好处的.下面的小程序包括一个故意导致被零除错误的表达式. class Exc0 { public st ...
- java课程设计拼图_基于Java拼图游戏的设计与实现(含录像)
基于拼图游戏的设计与实现(含录像) 摘 要 本拼图游戏是基于J2SE平台开发的,它是一个Application,它的游戏规则和诺亚舟里的拼图游戏是一样的.这个游戏将一张大图切割成N张小图,然后在 ...
- java 写字板源代码_基于JAVA的模拟写字板的设计与实现(含录像)
基于的模拟写字板的设计与实现(含录像)(任务书,开题报告,中期检查表,外文翻译,毕业论文18800字,程序代码,答辩PPT,答辩视频录像) 摘要 目前,很多新的技术领域都涉及到了Java语言,Java ...
- java网页作业提交_基于JAVA网上作业提交批改系统的设计(SQL)(含录像)
基于JAVA网上作业提交批改系统的设计(SQL)(含录像)(毕业论文15000字,程序代码,SQLserver数据库) 摘 要 随着社会的进步,网络技术的发展为教育界提供了一片崭新的空间,传统的教学 ...
- java是什么格式_是java格式
错误:编码GBK的不可映射字符的解决办法 最近在重新补javaSE的基础,编辑器编写完代码以后,在控制台运行代码段的时候,出现了以下的错误提示:错误:编码GBK的不可映射字符 在通过查询谷哥和度娘以后 ...
- java 异常处理发生异常_处理Java中的异常
java 异常处理发生异常 每个程序员都希望编写一个完美的程序. 也就是说,程序运行时没有任何障碍. 好吧,如果希望是马,乞g就会骑. 除了程序员的所有愿望之外,有时还会发生无法预料的情况. 在Jav ...
- java ee开发环境_设置Java EE 6开发环境
java ee开发环境 本教程简要说明了如何设置典型的环境来开发基于Java EE 6的应用程序. 除了可以正常工作的Windows XP客户端具有足够的CPU能力和内存外,本教程没有其他先决条件. ...
- java使用外部库_在Java中使用外部库
java使用外部库 Java附带了一组核心库,其中包括定义常用数据类型和相关行为的库,例如String或Date : 与主机操作系统进行交互的实用程序,例如System或File : 有用的子系统来管 ...
- java学习是什么_学习JAVA有什么作用?
1.可以做WEB系统,如网站,不过做网站就有点杀鸡用牛到了.用的最62616964757a686964616fe4b893e5b19e31333431343631多的就是用JAVA做管理系统,很容易维 ...
最新文章
- 增强我们的Visual Studio(更新中)
- [HAOI2007]上升序列
- Gartner:云安全的未来,是安全访问服务边缘架构
- [交叉验证]机器学习中分类器的选择
- shell编程cp强制覆盖拷贝时仍需确认问题的处理方法
- 反向代理和负载均衡有何区别?
- 使用Screaming Frog SEO Spider 如何查找断开的链接
- USGS网站中STRM DEM数据批量下载
- MIMO系统信号检测之MMSE推论
- Microsoft-Yahoo: Not Again. Why Again?
- spring事务REQUIRED REQUIRES_NEW区别
- 教你制作QQ空间超高连通率背景音乐链接。
- STM32H7的终极调试组件Event Recorder
- ElasticSearch快速入门
- Edge浏览器怎么降级到旧版本?
- 【日常学习】【数学】codevs3625 士兵站队问题题解
- Atcoder AGC B Splatter Painting 记忆化+逆向模拟
- IG中最多案赞数居然是一棵蛋?!网友共同合作打破美国女星记录
- c语言ceiling函数怎么用,ceiling函数 ceiling函数用法
- Spring Boot 2 实践记录之 MyBatis 集成的启动时警告信息问题