小编use*_*924的帖子

使用ADB捕获屏幕

我正试图尽快获得手机屏幕的截图.目前,我正在做:

adb shell screencap -p /sdcard/screencap.png && adb pull /sdcard/screencap.png         
Run Code Online (Sandbox Code Playgroud)

但它太慢,需要3秒钟.有没有更好的方法来做到这一点?我打算在没有根据的手机上使用此功能.

还有什么我可以用于screencap的不同论点?

谢谢.

编辑(额外信息):我打算使用这种方法能够将屏幕的实时馈送到我的电脑上.目前的方法有效但速度太慢.我无法使用,adb shell screenrecord因为在录制时我无法访问视频文件.

java android screenshot adb

51
推荐指数
6
解决办法
6万
查看次数

Javafx Platform.runLater从未运行过

我基本上希望能够在我的LWJGL/GLFW线程启动后(和内部)启动一个新的Javafx窗口(阶段).我基本上是这样做的:

Thread thread = new Thread(()->Platform.runLater(()->{
    Stage stage = new Stage();
    //Stage setup
    stage.show();
}));
thread.start();
Run Code Online (Sandbox Code Playgroud)

线程是我的游戏线程.但它永远不会运行,我试过一个System.out.println()内部Platform.runLater()只是为了检查它永远不会运行.

为什么它永远不会运行,我该怎么做才能解决它?谢谢.

编辑:只是为了澄清线程已经启动了什么,如果我这样做:

Thread thread = new Thread(()->{
    System.out.println("Before Platform.runLater()");
    Platform.runLater(()->System.out.println("Inside Platform.runLater()"));
    System.out.println("After Platform.runLater()");
});
Run Code Online (Sandbox Code Playgroud)

它输出:

Before Platform.runLater()
After Platform.runLater()
Run Code Online (Sandbox Code Playgroud)

java multithreading javafx lwjgl

8
推荐指数
1
解决办法
5926
查看次数

使用增量时间时,如何保持跳跃高度不变?

我正在使用delta时间,所以我可以使我的程序帧速率独立.但是我无法获得相同的跳跃高度,角色总是在较低的帧速率下跳得更高.

变量:

const float gravity = 0.0000000014f;
const float jumpVel = 0.00000046f;
const float terminalVel = 0.05f;
bool readyToJump = false;
float verticalVel = 0.00f;
Run Code Online (Sandbox Code Playgroud)

逻辑代码:

if(input.isKeyDown(sf::Keyboard::Space)){
    if(readyToJump){
        verticalVel = -jumpVel * delta;
        readyToJump = false;
    }
}

verticalVel += gravity * delta;
y += verticalVel * delta;
Run Code Online (Sandbox Code Playgroud)

我确定增量时间是正确的,因为角色水平移动很好.

无论帧速率如何,我如何让我的角色跳跃?

c++ time gravity delta

4
推荐指数
1
解决办法
2405
查看次数

ProcessBuilder不会使用参数运行

我正在尝试使用ProcessBuilder运行"java -version":

processBuilder = new ProcessBuilder("java -version");
process = processBuilder.start();
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误:

java.io.IOException: Cannot run program "java -version": CreateProcess error=2, The system cannot find the file specified
Run Code Online (Sandbox Code Playgroud)

当我删除"-version"并执行:

processBuilder = new ProcessBuilder("java");
process = processBuilder.start();
Run Code Online (Sandbox Code Playgroud)

它运行正常,我得到正常的帮助指南输出.

我怎样才能让它运行参数呢?

java arguments processbuilder

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

是否可以将计算机屏幕发送到Android设备?

我只是想知道Android设备是否有可能通过LAN以60赫兹的速度获得计算机的屏幕.

我已经制作了一个Android应用程序连接到我的PC上的Java程序,该程序截取屏幕截图并通过TCP套接字将其发送到显示它的设备.但是,每个图像需要花费太多时间来实时传输以查看计算机屏幕.

它实际上是可能的,我只是做错了或软件或实际设备(我的HTC Wildfire S)太慢了?

java sockets networking android image

0
推荐指数
1
解决办法
211
查看次数