Итак, после долгого поиска в сети, я придумал следующий код, чтобы сделать jpeg
скриншоты, а затем преобразовать их в mov
:
public class ScreenshotTests {
public static int counter = 1;
public static void main(String[] args) throws IOException, AWTException, InterruptedException {
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
Robot robot = null;
try {
robot = new Robot();
} catch (AWTException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Rectangle rectangle = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
BufferedImage image = robot.createScreenCapture(rectangle);
try {
ImageIO.write(image, "jpg", new File("images/test" + counter + ".jpg"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
counter++;
}
};
Timer timer = new Timer(0, taskPerformer);
timer.setRepeats(true);
timer.start();
Thread.sleep(5000);
timer.stop();
Vector<String> imgLst = new Vector<String>();
for (int i = 0; i < new File("images").list().length; i++) {
imgLst.add("images/test" + i + 1 + ".jpg");
}
JpegImagesToMovie imageToMovie = new JpegImagesToMovie();
MediaLocator oml;
if ((oml = imageToMovie.createMediaLocator("test1.mov")) == null) {
System.err.println("Cannot build media locator from: " + "test1.mov");
System.exit(0);
}
int interval = 50;
imageToMovie.doIt(1920, 1080, (1000 / interval), imgLst, oml);
}
}
И этоработает нормально, без ошибок.Однако, хотя я и получаю несколько десятков изображений в папке image
, видео состоит только из последнего изображения (а продолжительность видео равна нулю секунд).Что здесь не так?