gpt4 book ai didi

java - 进程正在暂停,直到我关闭程序

转载 作者:行者123 更新时间:2023-11-30 02:31:20 25 4
gpt4 key购买 nike

我为它制作了一个简单的程序和用户界面。它有一个按钮用于启动 ffmpeg.exe 来解码视频:

    button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
ProcessBuilder pb = new ProcessBuilder("D:\\ffmpeg.exe", "-i", "\"D:\\video\\input.mp4\"", "\"output.mp4\"");
try {
Process p = pb.start();
} catch (IOException error) {
//
}
}
}

问题是,单击按钮 ffmpeg 启动后,它不会执行任何操作(在任务管理器中,它不使用 cpu - 0%),直到我关闭程序(UI),然后 ffmpeg 进程开始解码视频(仅在关闭程序 ffm​​peg 后才开始使用 cpu - 例如 24%)

不重复:Andy Thomas提出的旧问题没有针对我的问题的答案(解决方案)

最佳答案

您的进程阻止了event dispatch thread 。相反,运行您的 ProcessBuilderSwingWorker的背景下,如完整的example所示.

    @Override
protected Integer doInBackground() {
try {
ProcessBuilder pb = new ProcessBuilder(
"D:\\ffmpeg.exe", "-i", "\"D:\\video\\input.mp4\"", "\"output.mp4\""));

}

请注意,该示例调用 redirectErrorStream(true),因此您应该能够从 ffmpeg.exe 看到任何错误或提示。

关于java - 进程正在暂停,直到我关闭程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44210123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com