Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. private IMediaWriter writer;
  2.  
  3. private String videoName = "CapturedVideo.mp4";
  4.  
  5. private final int delayBetweenFrames = 30/1000;
  6. private final Timer timer = new Timer(delayBetweenFrames, this);
  7.  
  8. public void startCapture(){
  9. try {
  10. audio = new AudioCapture();
  11. robot = new Robot();
  12. writer = ToolFactory.makeWriter(videoName);
  13. writer.addVideoStream(0, 0, ICodec.ID.CODEC_ID_H264,capBounds.width,capBounds.height);
  14. writer.addAudioStream(1, 0, 2, 44100);
  15. startTime = System.currentTimeMillis();
  16.  
  17. timer.start();
  18.  
  19. } catch (AWTException ex) {}
  20. }
  21.  
  22. public void stopCapture(){
  23. timer.stop();
  24. try {
  25. Thread.sleep(100);
  26. } catch (InterruptedException ex) {}
  27. writer.close();
  28. }
  29.  
  30. public void actionPerformed(ActionEvent e){
  31. if(e.getSource() == timer){
  32. BufferedImage screen = getCaptureImage();
  33. writer.encodeVideo(
  34. 0,
  35. screen,
  36. (System.currentTimeMillis()-startTime-totalPauseTime),
  37. TimeUnit.MILLISECONDS
  38. );
  39.  
  40. addAudioData();
  41. }
  42. }
  43.  
  44. public BufferedImage getCaptureImage(){
  45. int x = MouseInfo.getPointerInfo().getLocation().x;
  46. int y = MouseInfo.getPointerInfo().getLocation().y;
  47.  
  48. BufferedImage screen = robot.createScreenCapture(capBounds);
  49. if(screen.getType() != BufferedImage.TYPE_3BYTE_BGR){
  50. BufferedImage image = new BufferedImage(screen.getWidth(),screen.getHeight(),BufferedImage.TYPE_3BYTE_BGR);
  51.  
  52. Graphics2D g = screen.createGraphics();
  53. g.drawImage(cursor, x, y, null);
  54. image.getGraphics().drawImage(screen, 0, 0, null);
  55. screen = image;
  56. g.dispose();
  57. }
  58. return screen;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement