(Android Studio) Не удается создать MediaPlayer для файлов на SD-карте - PullRequest
0 голосов
/ 09 ноября 2019

Я сканирую SD-карту на наличие аудиофайлов и сохраняю их пути к файлам. Это отлично работает. Позже я получаю информацию о пути к файлу для создания URI:

MediaPlayer mp = MediaPlayer.create(this, Uri.fromFile(new File(filepath)));

Однако это приводит к следующей ошибке:

I/System.out: URI: file:///storage/123A-45BC/Folder/Audio.mp3
E/MediaPlayerNative: error (1, -2147483648)
D/MediaPlayer: create failed:
    java.io.IOException: Prepare failed.: status=0x1

В этом и заключается вся проблема. Ниже приведены лишь несколько других вещей, которые я пробовал с одинаковыми или разными ошибками.

-) Я попытался создать MediaPlayer и указать пути к файлам следующим образом:

MediaPlayer mp = new MediaPlayer();
mp.reset();

try {
     mp.setDataSource(filepath);
     // or: mp.setDataSource(this, Uri.fromFile(new File(filepath)));
     mp.prepare();
}
catch ...

// This results in the same error.

-) ИЯ попытался с Uri.parse:

MediaPlayer mp = MediaPlayer.create(this, Uri.parse(filepath));

// Uri.parse results in an "java.io.FileNotFoundException: No content provider" error,
// unlike Uri.fromFile.
// This tells me that I am on the right track with Uri.fromFile.

-) Это проблема отсутствия пользовательских разрешений? У меня есть:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

file.exists () и file.canRead () оба возвращают true.

Любая помощь очень ценится, и заранее спасибо!

...