diff --git a/app/src/main/java/com/frank/ffmpeg/FFmpegCmd.java b/app/src/main/java/com/frank/ffmpeg/FFmpegCmd.java index bf6dc8f..48c1ef4 100644 --- a/app/src/main/java/com/frank/ffmpeg/FFmpegCmd.java +++ b/app/src/main/java/com/frank/ffmpeg/FFmpegCmd.java @@ -168,7 +168,7 @@ public class FFmpegCmd { if (mProgressListener != null) { if (position > 0 && duration > 0) { int progress = position * 100 / duration; - if (progress < 100 || state == STATE_FINISH || state == STATE_ERROR) { + if (progress < 100) { mProgressListener.onProgress(progress, duration); } } else { diff --git a/app/src/main/java/com/frank/ffmpeg/handler/FFmpegHandler.java b/app/src/main/java/com/frank/ffmpeg/handler/FFmpegHandler.java index acc3250..26cba08 100644 --- a/app/src/main/java/com/frank/ffmpeg/handler/FFmpegHandler.java +++ b/app/src/main/java/com/frank/ffmpeg/handler/FFmpegHandler.java @@ -32,7 +32,7 @@ public class FFmpegHandler { public final static int MSG_INFO = 2222; - private Handler mHandler; + private final Handler mHandler; private boolean isContinue = false; @@ -53,6 +53,8 @@ public class FFmpegHandler { if (commandLine == null) { return; } + mHandler.removeMessages(MSG_PROGRESS); + mHandler.removeCallbacksAndMessages(null); FFmpegCmd.execute(commandLine, new OnHandleListener() { @Override public void onBegin() {