2017-02-06 3 views
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: enter image description here Я вижу это журналы:

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 с правильным путем (я думаю). Не может быть что-то не так?

+0

Избавиться от всего этого и использовать [версию 'создать () ', который принимает идентификатор ресурса] (https://developer.android.com/reference/android/media/MediaPlayer.html#create (android.content.Context,% 20int)). – CommonsWare

+0

Мне нужно извлечь файл динамически, потому что во время выполнения я знаю, что этот файл выбирает пользователя. Трудно знать идентификатор в это время. – Genaut

+0

Похоже, что 'setDataSource()' не принимает схемы 'android.resource', поэтому я не думаю, что у вас есть большой выбор. – CommonsWare

ответ

0

Изменить код ...

String videoUri = "android.resource://" + getPackageName() + "/" + R.raw.sound_test; 

В этом руководстве есть видео файл, но процесс одинаков для аудио file.Source Click here for more description

Смежные вопросы