0
Я читал о решении этой проблемы. У меня есть этот кодAndroid получить Uri из файла из исходной папки usin имя
String filename = "android.resource://" + this.getPackageName() + "/raw/" + lastButtonFilename;
try {
Log.i("Home", "Recreamos la URL: " + filename);
mediaPlayer.setDataSource(this, Uri.parse(filename));
} catch (Exception e) {
Log.e("Home", "Error setting source media." + e.getMessage(), e);
}
Это скриншот моего приложения в Android Studio: Я вижу это журналы:
02-06 17:49:28.605 28884-28884/com.mypackage I/Home: Recreamos la URL: android.resource://com.mypackage/raw/sound_test.mp3
02-06 17:49:28.614 28884-28884/com.mypackage W/MediaPlayer: Couldn't open file on client side; trying server side: java.io.FileNotFoundException: No resource found for: android.resource://com.mypackage/raw/sound_test.mp3
У меня есть sound_test.mp3 в моем Src/RES/сырье папка. Im с использованием Android Studio. Я создал URI с правильным путем (я думаю). Не может быть что-то не так?
Избавиться от всего этого и использовать [версию 'создать () ', который принимает идентификатор ресурса] (https://developer.android.com/reference/android/media/MediaPlayer.html#create (android.content.Context,% 20int)). – CommonsWare
Мне нужно извлечь файл динамически, потому что во время выполнения я знаю, что этот файл выбирает пользователя. Трудно знать идентификатор в это время. – Genaut
Похоже, что 'setDataSource()' не принимает схемы 'android.resource', поэтому я не думаю, что у вас есть большой выбор. – CommonsWare