java - 如何杀死FFmpeg当前正在运行的进程?
问题描述
我正在开发一个使用 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()
当调用特定代码时,如何在没有内存泄漏和应用程序崩溃的情况下实现终止进程?
解决方案
您不必添加或导入任何东西,只需调用文件中已声明的方法即可
private void killAllreadyRunningProcess(FFmpeg ffmpeg){
if(ffmpeg.isFFmpegCommandRunning())
ffmpeg.killRunningProcess();
}
推荐阅读
- spring-security - JWT认证和本地数据库授权
- javascript - 如何使用 z-index=1 制作元素,在 css 中响应
- angular - 将第三方 Promise 包装到共享的 Observable 中
- cookies - 是否可以使用 Set-Cookie 标头设置现有 cookie 的 Expires/Max-Age?
- mongodb - MongoDB 如果其他集合中存在字段/引用,则从聚合中排除文档
- django - django tables2 创建带有超链接的额外列
- wordpress - 我如何获得孩子页面木材/树枝 WordPress 的孩子
- javascript - 为什么我的 api 发布请求(Vue.js 客户端)从我的快递服务器收到未定义的响应?
- java - 是否有可能在项目反应堆中拥有一个为多个订阅者提供独立背压支持的热发布者?
- mysql - 没有在数据库中显示结果