Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private IMediaWriter writer;
- private String videoName = "CapturedVideo.mp4";
- private final int delayBetweenFrames = 30/1000;
- private final Timer timer = new Timer(delayBetweenFrames, this);
- public void startCapture(){
- try {
- audio = new AudioCapture();
- robot = new Robot();
- writer = ToolFactory.makeWriter(videoName);
- writer.addVideoStream(0, 0, ICodec.ID.CODEC_ID_H264,capBounds.width,capBounds.height);
- writer.addAudioStream(1, 0, 2, 44100);
- startTime = System.currentTimeMillis();
- timer.start();
- } catch (AWTException ex) {}
- }
- public void stopCapture(){
- timer.stop();
- try {
- Thread.sleep(100);
- } catch (InterruptedException ex) {}
- writer.close();
- }
- public void actionPerformed(ActionEvent e){
- if(e.getSource() == timer){
- BufferedImage screen = getCaptureImage();
- writer.encodeVideo(
- 0,
- screen,
- (System.currentTimeMillis()-startTime-totalPauseTime),
- TimeUnit.MILLISECONDS
- );
- addAudioData();
- }
- }
- public BufferedImage getCaptureImage(){
- int x = MouseInfo.getPointerInfo().getLocation().x;
- int y = MouseInfo.getPointerInfo().getLocation().y;
- BufferedImage screen = robot.createScreenCapture(capBounds);
- if(screen.getType() != BufferedImage.TYPE_3BYTE_BGR){
- BufferedImage image = new BufferedImage(screen.getWidth(),screen.getHeight(),BufferedImage.TYPE_3BYTE_BGR);
- Graphics2D g = screen.createGraphics();
- g.drawImage(cursor, x, y, null);
- image.getGraphics().drawImage(screen, 0, 0, null);
- screen = image;
- g.dispose();
- }
- return screen;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement