首页 > 解决方案 > 如何杀死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()

当调用特定代码时,如何在没有内存泄漏和应用程序崩溃的情况下实现终止进程?

标签: javaandroidandroid-ffmpeg

解决方案


您不必添加或导入任何东西,只需调用文件中已声明的方法即可

private void killAllreadyRunningProcess(FFmpeg ffmpeg){
    if(ffmpeg.isFFmpegCommandRunning())
        ffmpeg.killRunningProcess();
}

推荐阅读