【发布时间】:2020-03-20 16:31:31
【问题描述】:
我正在开发一个使用 FFmpeg 修剪视频的应用程序。当修剪过程开始并且我取消它时,FFmpeg 完全终止。如何只杀死当前工作进程来实现?
/* define PID */
try {
String pid = ffmpeg.toString();
pid = pid.substring(pid.indexOf("[") + 1, pid.indexOf("]"));
Process process = Runtime.getRuntime().exec("kill -2 " + pid);
process.waitFor();
ffmpeg.wait();
} catch (IOException | InterruptedException e) {
Log.e(TAG, "kill_ffmpeg: exception failed ",e );
e.printStackTrace();
}
这是我现在一直在使用的代码。当此代码唤醒时,活动会重新启动,但索引超出范围。
这是我一直在使用 FFmpeg Here 实现视频编辑功能的库
在这个 FFmpeg 库中有一个名为 killRunningProcess() 的方法。当我使用这个方法时,显示一个名为cannot resolve method killRunningProcess()的错误
当调用特定代码时,如何在不发生内存泄漏和应用程序崩溃的情况下终止进程?
【问题讨论】:
-
在 exec - "sudo kill -9
" 中试试这个命令。如果您只是想根据您的要求重新启动,也可以试试这个。停止:sudo kill -s SIGSTOP ,重新启动:sudo kill -s SIGCONT 。希望它会帮助你。而且您使用的是 Windows pc,我觉得基于可访问性、安全性等 (-_-) 使用 FFmpeg 存在很多问题。 -
我会尝试使用你的代码,我正在使用 mac
标签: java android android-ffmpeg