判断待处理文件是否存在

判断待处理文件是否存在
pull/107/head
xufulong 6 years ago
parent e65ae1794e
commit 5fb8df32a7
  1. 13
      app/src/main/java/com/frank/ffmpeg/activity/AudioHandleActivity.java
  2. 6
      app/src/main/java/com/frank/ffmpeg/activity/FilterActivity.java
  3. 11
      app/src/main/java/com/frank/ffmpeg/activity/MediaHandleActivity.java
  4. 7
      app/src/main/java/com/frank/ffmpeg/activity/MediaPlayerActivity.java
  5. 28
      app/src/main/java/com/frank/ffmpeg/activity/VideoHandleActivity.java
  6. 6
      app/src/main/java/com/frank/ffmpeg/activity/VideoPlayerActivity.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();

@ -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

@ -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;

@ -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() {

@ -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:

@ -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();

Loading…
Cancel
Save