MediaPlayer.setDataSource (String) не работает с локальными файлами
Я могу воспроизводить локальный mp3, если я использую статический метод MediaPlayer.create (context, id), но он не работает, если я использую нестатический метод MediaPlayer.setDataSource (String). Происходит то, что я получаю синхронное исключение при вызове MediaPlayer.prepare ():
prepare exceptionjava.io.IOException: Prepare failed.: status=0x1
Вот мой код (пропущено ведение журнала):
String filename = "android.resource://" + this.getPackageName() + "/raw/test0";
mp = new MediaPlayer();
try { mp.setDataSource(filename); } catch (Exception e) {}
try { mp.prepare(); } catch (Exception e) {}
mp.start();
Обратите внимание, что я не получаю ошибки о файле не найден или что-нибудь. Полное имя файла - test0.mp3, и я помещаю его в каталог / res / raw / в Eclipse.
Я предполагаю, что я задаю путь неправильно, но все примеры, которые я нахожу в Интернете, используют версию setDataPath FileDescriptor вместо версии setDataPath для String.
РЕДАКТИРОВАТЬ: я также могу воспроизводить локальный mp3, если я использую метод MediaPlayer.setDataSource (FileDescriptor) и помещаю файлы в каталог / assets / в Eclipse.
РЕДАКТИРОВАНИЕ № 2: Я принял ответ, что это невозможно, но потом понял, что библиотека, которую я использую (openFrameworks), действительно использует метод String для загрузки файла. Посмотреть здесь: