相关疑难解决方法(0)

如何在Windows(ffmpeg等)中使用Java快速截取桌面?

我想使用java来使用FFMPEG或其他解决方案截取我的机器的屏幕截图.我知道linux可以在没有JNI的情况下使用ffmpeg,但在Windows中运行它不起作用并且可能需要(JNI?)是否有一些简单的Java类(以及其他任何必要的)的示例来捕获在Windows环境中可运行的屏幕截图?FFMPEG有替代品吗?我想以比Java Robot API更快的速度截取屏幕截图,我发现它可以用来截取屏幕截图,但速度比我想要的慢.

我知道在Linux中它的工作速度非常快:

import com.googlecode.javacv.*;

public class ScreenGrabber {
    public static void main(String[] args) throws Exception {
        int x = 0, y = 0, w = 1024, h = 768;
        FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(":0.0+" + x + "," + y);
        grabber.setFormat("x11grab");
        grabber.setImageWidth(w);
        grabber.setImageHeight(h);
        grabber.start();

        CanvasFrame frame = new CanvasFrame("Screen Capture");
        while (frame.isVisible()) {
            frame.showImage(grabber.grab());
        }
        frame.dispose();
        grabber.stop();
    }
Run Code Online (Sandbox Code Playgroud)

这在Windows环境中不起作用.我不确定是否有某些方法可以使用相同的代码,但使用javacpp实际上可以使其工作,而无需更改上述代码.

目标是快速截取屏幕截图,但在截取"不同"的屏幕截图之后停止.屏幕因某些事件而改变,例如窗口关闭等等.

java windows java-native-interface ffmpeg

11
推荐指数
1
解决办法
1万
查看次数

如何在Java中获取程序窗口的x和y?

有没有办法让我在java中获取窗口的X和Y值?我读到我将不得不使用运行时,因为java不能直接混乱,但是我不太清楚如何做到这一点.谁能指出一些如何获得这个的链接/提示?

java runtime jna coordinates awtrobot

7
推荐指数
3
解决办法
2万
查看次数