Можете ли вы go с SiliCompressor . Это хорошая и простая библиотека, которая дает хороший результат. Я использовал это.
Попробуйте реализовать это. Если вы получите какую-либо ошибку, дайте мне знать.
https://github.com/Tourenathan-G5organisation/SiliCompressor
Редактировать:
Таким образом, вы можете вызвать асинхронную задачу c.
class VideoCompressAsyncTask extends AsyncTask<String, String, String> {
Context mContext;
public VideoCompressAsyncTask(Context context) {
mContext = context;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... paths) {
String filePath = null;
try {
filePath = SiliCompressor.with(mContext).compressVideo(paths[0], paths[1]);
} catch (URISyntaxException e) {
e.printStackTrace();
}
return filePath;
}
@Override
protected void onPostExecute(String compressedFilePath) {
super.onPostExecute(compressedFilePath);
File videoFile = new File(compressedFilePath);
}
}
Тогда позвони.
new VideoCompressAsyncTask(getActivity()).execute(selectedVideoPath, f.getPath());
selectedVideoPath - путь к источнику видео, а f.getPath () - путь назначения.
Попробуйте так.