From 5fb8df32a7b9db7699afb64b8219acf80b112749 Mon Sep 17 00:00:00 2001 From: xufulong <839789740@qq.com> Date: Thu, 25 Oct 2018 00:49:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A4=E6=96=AD=E5=BE=85=E5=A4=84=E7=90=86?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=98=AF=E5=90=A6=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 判断待处理文件是否存在 --- .../ffmpeg/activity/AudioHandleActivity.java | 13 +++++++++ .../frank/ffmpeg/activity/FilterActivity.java | 6 ++++ .../ffmpeg/activity/MediaHandleActivity.java | 11 ++++++++ .../ffmpeg/activity/MediaPlayerActivity.java | 7 ++++- .../ffmpeg/activity/VideoHandleActivity.java | 28 +++++++++++++++++++ .../ffmpeg/activity/VideoPlayerActivity.java | 6 ++++ 6 files changed, 70 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/frank/ffmpeg/activity/AudioHandleActivity.java b/app/src/main/java/com/frank/ffmpeg/activity/AudioHandleActivity.java index aea48b0..790442b 100644 --- a/app/src/main/java/com/frank/ffmpeg/activity/AudioHandleActivity.java +++ b/app/src/main/java/com/frank/ffmpeg/activity/AudioHandleActivity.java @@ -135,6 +135,9 @@ public class AudioHandleActivity extends AppCompatActivity implements View.OnCli */ private void doHandleAudio(int handleType){ String[] commandLine = null; + if (!FileUtil.checkFileExist(srcFile)){ + return; + } switch (handleType){ case 0://转码 String transformFile = PATH + File.separator + "transform.aac"; @@ -145,10 +148,16 @@ public class AudioHandleActivity extends AppCompatActivity implements View.OnCli commandLine = FFmpegUtil.cutAudio(srcFile, 10, 15, cutFile); break; case 2://合并,支持MP3、AAC、AMR等,不支持PCM裸流,不支持WAV(PCM裸流加音频头) + if (!FileUtil.checkFileExist(appendFile)){ + return; + } String concatFile = PATH + File.separator + "concat.mp3"; commandLine = FFmpegUtil.concatAudio(srcFile, appendFile, concatFile); break; case 3://混合 + if (!FileUtil.checkFileExist(appendFile)){ + return; + } String mixFile = PATH + File.separator + "mix.aac"; commandLine = FFmpegUtil.mixAudio(srcFile, appendFile, mixFile); break; @@ -182,6 +191,10 @@ public class AudioHandleActivity extends AppCompatActivity implements View.OnCli String srcPCM = PATH + File.separator + "audio.pcm";//第一个pcm文件 String appendPCM = PATH + File.separator + "audio.pcm";//第二个pcm文件 String concatPCM = PATH + File.separator + "concat.pcm";//合并后的文件 + if (!FileUtil.checkFileExist(srcPCM) || !FileUtil.checkFileExist(appendPCM)){ + return; + } + mHandler.obtainMessage(MSG_BEGIN).sendToTarget(); FileUtil.concatFile(srcPCM, appendPCM, concatPCM); mHandler.obtainMessage(MSG_FINISH).sendToTarget(); diff --git a/app/src/main/java/com/frank/ffmpeg/activity/FilterActivity.java b/app/src/main/java/com/frank/ffmpeg/activity/FilterActivity.java index 0e67370..44e6364 100644 --- a/app/src/main/java/com/frank/ffmpeg/activity/FilterActivity.java +++ b/app/src/main/java/com/frank/ffmpeg/activity/FilterActivity.java @@ -18,6 +18,8 @@ import com.frank.ffmpeg.R; import com.frank.ffmpeg.VideoPlayer; import com.frank.ffmpeg.adapter.HorizontalAdapter; import com.frank.ffmpeg.listener.OnItemClickListener; +import com.frank.ffmpeg.util.FileUtil; + import java.io.File; import java.util.ArrayList; import java.util.Arrays; @@ -127,6 +129,10 @@ public class FilterActivity extends AppCompatActivity implements SurfaceHolder.C public void onItemClick(int position) { if(!surfaceCreated) return; + if (!FileUtil.checkFileExist(VIDEO_PATH)){ + return; + } + final int mPosition = position; new Thread(new Runnable() { @Override diff --git a/app/src/main/java/com/frank/ffmpeg/activity/MediaHandleActivity.java b/app/src/main/java/com/frank/ffmpeg/activity/MediaHandleActivity.java index 7bfa747..5c9414d 100644 --- a/app/src/main/java/com/frank/ffmpeg/activity/MediaHandleActivity.java +++ b/app/src/main/java/com/frank/ffmpeg/activity/MediaHandleActivity.java @@ -14,6 +14,8 @@ import android.widget.ProgressBar; import com.frank.ffmpeg.FFmpegCmd; import com.frank.ffmpeg.R; import com.frank.ffmpeg.util.FFmpegUtil; +import com.frank.ffmpeg.util.FileUtil; + import java.io.File; /** @@ -139,6 +141,9 @@ public class MediaHandleActivity extends AppCompatActivity implements View.OnCli String[] commandLine = null; switch (handleType){ case 0://音视频合成 + if (!FileUtil.checkFileExist(videoFile)){ + return; + } try { //视频文件有音频,先把纯视频文件抽取出来 commandLine = FFmpegUtil.extractVideo(videoFile, temp); @@ -148,10 +153,16 @@ public class MediaHandleActivity extends AppCompatActivity implements View.OnCli } break; case 1://提取音频 + if (!FileUtil.checkFileExist(srcFile)){ + return; + } String extractAudio = PATH + File.separator + "extractAudio.aac"; commandLine = FFmpegUtil.extractAudio(srcFile, extractAudio); break; case 2://提取视频 + if (!FileUtil.checkFileExist(srcFile)){ + return; + } String extractVideo = PATH + File.separator + "extractVideo.mp4"; commandLine = FFmpegUtil.extractVideo(srcFile, extractVideo); break; diff --git a/app/src/main/java/com/frank/ffmpeg/activity/MediaPlayerActivity.java b/app/src/main/java/com/frank/ffmpeg/activity/MediaPlayerActivity.java index 77b33c4..36a97e8 100644 --- a/app/src/main/java/com/frank/ffmpeg/activity/MediaPlayerActivity.java +++ b/app/src/main/java/com/frank/ffmpeg/activity/MediaPlayerActivity.java @@ -8,6 +8,8 @@ import android.view.SurfaceHolder; import android.view.SurfaceView; import com.frank.ffmpeg.MediaPlayer; import com.frank.ffmpeg.R; +import com.frank.ffmpeg.util.FileUtil; + import java.io.File; /** @@ -45,7 +47,10 @@ public class MediaPlayerActivity extends AppCompatActivity implements SurfaceHol @Override public void surfaceCreated(SurfaceHolder holder) { - Log.i(TAG, "surfaceCreated"); + if (!FileUtil.checkFileExist(filePath)){ + return; + } + new Thread(new Runnable() { @Override public void run() { diff --git a/app/src/main/java/com/frank/ffmpeg/activity/VideoHandleActivity.java b/app/src/main/java/com/frank/ffmpeg/activity/VideoHandleActivity.java index 27df0d8..bf8a698 100644 --- a/app/src/main/java/com/frank/ffmpeg/activity/VideoHandleActivity.java +++ b/app/src/main/java/com/frank/ffmpeg/activity/VideoHandleActivity.java @@ -15,6 +15,7 @@ import com.frank.ffmpeg.FFmpegCmd; import com.frank.ffmpeg.R; import com.frank.ffmpeg.format.VideoLayout; import com.frank.ffmpeg.util.FFmpegUtil; +import com.frank.ffmpeg.util.FileUtil; import java.io.File; @@ -150,12 +151,21 @@ public class VideoHandleActivity extends AppCompatActivity implements View.OnCli */ private void doHandleVideo(int handleType){ String[] commandLine = null; + if (!FileUtil.checkFileExist(srcFile) || !FileUtil.checkFileExist(appendVideo)){ + return; + } switch (handleType){ case 0://视频转码:mp4转flv、wmv, 或者flv、wmv转Mp4 + if (!FileUtil.checkFileExist(srcFile)){ + return; + } String transformVideo = PATH + File.separator + "transformVideo.flv"; commandLine = FFmpegUtil.transformVideo(srcFile, transformVideo); break; case 1://视频剪切 + if (!FileUtil.checkFileExist(srcFile)){ + return; + } String cutVideo = PATH + File.separator + "cutVideo.mp4"; int startTime = 0; int duration = 20; @@ -181,11 +191,17 @@ public class VideoHandleActivity extends AppCompatActivity implements View.OnCli // commandLine = FFmpegUtil.concatVideo(srcFile, concatFile.getAbsolutePath(), concatVideo); break; case 3://视频截图 + if (!FileUtil.checkFileExist(srcFile)){ + return; + } String screenShot = PATH + File.separator + "screenShot.jpg"; String size = "1080x720"; commandLine = FFmpegUtil.screenShot(srcFile, size, screenShot); break; case 4://视频添加水印 + if (!FileUtil.checkFileExist(appendVideo)){ + return; + } //1、图片 String photo = PATH + File.separator + "launcher.png"; String photoMark = PATH + File.separator + "photoMark.mp4"; @@ -199,6 +215,9 @@ public class VideoHandleActivity extends AppCompatActivity implements View.OnCli //commandLine = FFmpegUtil.addWaterMark(appendVideo, photo, textMark); break; case 5://视频转成gif + if (!FileUtil.checkFileExist(srcFile)){ + return; + } String Video2Gif = PATH + File.separator + "Video2Gif.gif"; int gifStart = 30; int gifDuration = 5; @@ -213,6 +232,9 @@ public class VideoHandleActivity extends AppCompatActivity implements View.OnCli case 7://图片合成视频 //图片所在路径,图片命名格式img+number.jpg String picturePath = PATH + File.separator + "img/"; + if (!FileUtil.checkFileExist(picturePath)){ + return; + } String combineVideo = PATH + File.separator + "combineVideo.mp4"; commandLine = FFmpegUtil.pictureToVideo(picturePath, combineVideo); break; @@ -223,11 +245,17 @@ public class VideoHandleActivity extends AppCompatActivity implements View.OnCli String input1 = PATH + File.separator + "input1.mp4"; String input2 = PATH + File.separator + "input2.mp4"; String outputFile = PATH + File.separator + "multi.mp4"; + if (!FileUtil.checkFileExist(input1) || !FileUtil.checkFileExist(input2)){ + return; + } commandLine = FFmpegUtil.multiVideo(input1, input2, outputFile, VideoLayout.LAYOUT_HORIZONTAL); break; case 10://视频反序倒播 String input = PATH + File.separator + "beyond.mp4"; String output = PATH + File.separator + "reverse.mp4"; + if (!FileUtil.checkFileExist(input) || !FileUtil.checkFileExist(output)){ + return; + } commandLine = FFmpegUtil.reverseVideo(input, output); break; default: diff --git a/app/src/main/java/com/frank/ffmpeg/activity/VideoPlayerActivity.java b/app/src/main/java/com/frank/ffmpeg/activity/VideoPlayerActivity.java index a6b4c65..c8a1076 100644 --- a/app/src/main/java/com/frank/ffmpeg/activity/VideoPlayerActivity.java +++ b/app/src/main/java/com/frank/ffmpeg/activity/VideoPlayerActivity.java @@ -8,9 +8,11 @@ import android.view.SurfaceHolder; import android.view.SurfaceView; import android.view.View; import android.widget.Button; +import android.widget.Toast; import com.frank.ffmpeg.R; import com.frank.ffmpeg.VideoPlayer; +import com.frank.ffmpeg.util.FileUtil; import java.io.File; @@ -75,6 +77,10 @@ public class VideoPlayerActivity extends AppCompatActivity implements SurfaceHol new Thread(new Runnable() { @Override public void run() { + if (!FileUtil.checkFileExist(filePath)){ + return; + } + videoPlayer.play(filePath, surfaceHolder.getSurface()); } }).start();