Android - Сохранить аудио в SharedPreferences - PullRequest
0 голосов
/ 25 мая 2018

Я пишу приложение, в котором пользователю предлагается выбрать аудиофайл, который я затем получу в качестве Uri (я использую Intent.ACTION_PICK).

Как сохранить данные в следующий разчто приложение открыто, оно может использовать этот Uri в MediaPlayer.

Я попытался сохранить в SharedPreferences с помощью uri.toString () и загрузить с Uri.Parse, но когда я использую его в MediaPlayer, я получаю ошибку setData fail.

 private void SaveSettings(Uri uri) throws FileNotFoundException
        {
            SharedPreferences pref = getSharedPreferences(APP, MODE_PRIVATE);
            SharedPreferences.Editor editor = pref.edit();
           editor.putString("uri", uri.toString());
            editor.commit();
        }

// when calling: _uri = LoadSettings();
        private Uri LoadSettings()
        {
            SharedPreferences pref = getSharedPreferences(APP, MODE_PRIVATE);
            String str = pref.getString("uri", null);
            if(str == null)
            {
                return null;
            }

            return Uri.parse(Uri.encode(str));
        }

    private void PlaySound() throws IOException
    {
         if(!_paused)
         {
                _mp = new MediaPlayer();
                _mp.setDataSource(this, _uri); // this fails
                _mp.prepare();
            }

            _paused = false;
            _mp.start();
    }

Буду признателен за вашу помощь.

...