gpt4 book ai didi

java Runtime.exec() 编程并将字符传递给 getch()

转载 作者:行者123 更新时间:2023-11-29 09:24:30 24 4
gpt4 key购买 nike

我想从 java 作为外部进程运行 ffmpeg。几分钟后我想停止它。它要求我单击“q”,它在控制台中工作,但是当我尝试将“q”写入其标准输入(使用 java 的 process.getOutputStream() - 它不起作用。

我只是获取“c”,使用 ASCII 字符集将其转换为字节,将其写入流,刷新并关闭它。 Ffmpeg 不会停止。

我简单地查看了它的源代码,发现它使用了 getch() 函数,该函数(根据手册)“从相关终端读取字符”。

ffmpeg 也可以通过信号停止,但它在 Windows 中也不起作用。

有人知道如何解决我的问题吗?

是的:我真的很想将 ffmpeg 作为外部程序运行。我知道 xuggle,但它对我不起作用,我需要裸 ffmpeg,而且我现在不想自己编写 JNI。

谢谢!

最佳答案

看,readch() 从终端键盘读取一个字符,而不是输入流!在 *nix 中它使用 ioctl,在 Windows 中(我相信)使用某种控制台 API。

看起来我无法在没有 JNI 的情况下从 java 中停止 ffmpeg:(

关于java Runtime.exec() 编程并将字符传递给 getch(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3774909/

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