Проблема возникает, когда во время обработки видео пользователь сам закрывает приложение из диспетчера задач, а затем его обработка останавливается.
Я работаю над обработкой видеофайлов в Android с помощью FFMpeg, который работает отлично, но когда я закрываю приложение во время обработки из диспетчера задач, обработка видео перестала работать, даже если я добавил всю работу в диспетчере работ.
@Override
public Result doWork() {
shellCommand = new ShellCommand();
ffmpegBinary = new String[] {
FileUtils.getFFmpeg(context).getAbsolutePath()
};
command = concatenate(ffmpegBinary, command);
CommandResult commandResult = getCommandResult(command);
if (command`enter code here`Result.success) {
onSuccess(videoPath);
} else {
onFailure(videoPath);
}
}
//getCommandResult
private CommandResult getCommandResult(String[] command) {
try {
process = shellCommand.run(command, null);
if (process == null) {
return CommandResult.getDummyFailureResponse();
}
checkAndUpdateProcess();
return CommandResult.getOutputFromProcess(process);
} catch(Exception e) {} finally {
Util.destroyProcess(process);
}`enter code here`
return CommandResult.getDummyFailureResponse();
}
Насколько я могу судить, когда приложение закрывается из фона, родительский процесс уничтожает его и уничтожает также весь его подпроцесс, FFMpeg использует процесс android для выполнения команды и проверки состояния видеофайла. во время обработки видео.
Будем рады услышать от вас.
Спасибо