finish music downloader

This commit is contained in:
aliveoutside
2022-07-11 19:55:04 +03:00
parent d1f2a78a48
commit 94c72eb490
2 changed files with 24 additions and 8 deletions
@@ -11,6 +11,7 @@ import com.vk.core.util.ToastUtils;
import com.vk.dto.music.MusicTrack;
import java.io.File;
import java.util.Random;
import ru.vtosters.lite.music.Callback;
import ru.vtosters.lite.music.FFMpeg;
@@ -22,17 +23,26 @@ public class AudioDownloader {
ToastUtils.a("Не удалось найти ссылку на аудиозапись");
return;
}
var path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC)
.getAbsolutePath() + File.separator + track.f;
downloadAudioAsync(track, path, new Callback() {
var musicPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC).getAbsolutePath();
var downloadPath = musicPath + File.separator + new Random().nextInt(100);
downloadAudioAsync(track, downloadPath, new Callback() {
@Override
public void onProgress(int progress) {
ToastUtils.a("Загружено " + progress + "%");
}
@Override
public void onSuccess() {
FFMpeg.convert(path, path + "x");
try {
var fileName = track.toString();
FFMpeg.convert(downloadPath, musicPath + File.separator + fileName + ".mp3");
}
catch (UnsatisfiedLinkError e) {
Log.e("AudioDownloader","Опять эти нативные либы");
Log.e("AudioDownloader", e.getMessage());
onFailure();
}
ToastUtils.a("Загрузка завершена");
}
@@ -10,7 +10,6 @@ import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
import ru.vtosters.lite.utils.Globals;
@@ -50,7 +49,6 @@ public class FFMpeg {
// write the list of all .ts files to a txt file in "in" directory
var list = new File(in);
list.mkdirs();
var listFile = new File(list, "list.txt");
try {
listFile.createNewFile();
@@ -70,14 +68,22 @@ public class FFMpeg {
var concat = FFmpegKit.execute("-f concat -safe 0 -i " + in + "/list.txt -c copy " + in + "/all.ts");
// convert .ts file to .mp3 file via ffmpeg
var session = FFmpegKit.execute("-i " + in + "/all.ts -f mp3 -acodec mp3 -b 320 -y " + out);
var session = FFmpegKit.execute("-i " + in + "/all.ts -f mp3 -acodec mp3 -b 320 -y '" + out + "'");
var rc = session.getReturnCode();
if (ReturnCode.isSuccess(rc)) {
// remove temp files
deleteRecursively(new File(in));
return true;
} else {
Log.e("FFMpeg", "FFmpegKit failed with return code " + rc);
return false;
}
}
private static void deleteRecursively(File fileOrDirectory) {
if (fileOrDirectory.isDirectory()) for (File child : fileOrDirectory.listFiles())
deleteRecursively(child);
fileOrDirectory.delete();
}
}