finish music downloader
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user