Зашифруйте аудио файл mp3 при загрузке и расшифруйте его при воспроизведении в Android - PullRequest
0 голосов
/ 24 октября 2019

У меня есть приложение для Android, которое загружает и воспроизводит mp3-файлы. Но я хочу зашифровать аудио файлы во время загрузки, а затем расшифровать для воспроизведения. Я уже проверил всюду в Интернете, но не нашел никакого решения. Может кто-нибудь, пожалуйста, помогите мне, как зашифровать аудиофайлы во время загрузки, а затем расшифровать во время воспроизведения. Вот мой код для загрузки файлов

     private void download() {
    if (Constant.arrayList_play.size() > 0) {

        File root = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Myapp/cache");
        if (!root.exists()) {
            root.mkdirs();
        }

        File file = new File(root, Constant.arrayList_play.get(viewpager.getCurrentItem()).getMp3Name() + ".mp3");

        if (!file.exists()) {

            String url = Constant.arrayList_play.get(viewpager.getCurrentItem()).getMp3Url();
            DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
            request.setDescription(getResources().getString(R.string.downloading) + " - " + Constant.arrayList_play.get(viewpager.getCurrentItem()).getMp3Name());
            request.setTitle(Constant.arrayList_play.get(viewpager.getCurrentItem()).getMp3Name());
            request.allowScanningByMediaScanner();
            request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
            request.setDestinationUri(Uri.parse("file://" + Environment.getExternalStorageDirectory().getAbsolutePath() + "/Myapp/cache/" + Constant.arrayList_play.get(viewpager.getCurrentItem()).getMp3Name() + ".mp3"));
            DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
            manager.enqueue(request);

            new AsyncTask<String, String, String>() {
                @Override
                protected String doInBackground(String... strings) {
                    String json = JsonUtils.getJSONString(Constant.URL_DOWNLOAD_COUNT + Constant.arrayList_play.get(viewpager.getCurrentItem()).getId());
                    Log.e("aaa - ", json);
                    return null;
                }
            }.execute();
            Toast.makeText(MainActivity.this, getResources().getString(R.string.downloading), Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(MainActivity.this, getResources().getString(R.string.already_download), Toast.LENGTH_SHORT).show();
        }
    } else {
        Toast.makeText(MainActivity.this, getResources().getString(R.string.no_song_selected), Toast.LENGTH_SHORT).show();
    }
}

Итак, не могли бы вы помочь мне с кодом.

...