Проблема Android с простым MediaPlayer - PullRequest
1 голос
/ 22 октября 2010

Может кто-нибудь указать мне, что не так с моим кодом?

try{
MediaPlayer p = new MediaPlayer();
p.setDataSource(getCacheDir() + "/temp.mp3");
p.prepare();
p.start();
}catch(Exception e){}

MediaPlayer p перехватывает исключение всякий раз, когда он вызывает prepare (). Файл temp.mp3 уже находится в папке кеша, и он не поврежден или как-то еще, но он не воспроизводится. Неужели MediaPlayer не может воспроизводить файлы в кеше?

Я надеюсь, что кто-то может дать мне представление о том, что я сделал неправильно. Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 28 сентября 2011

Используйте дескриптор файла:

try{
    MediaPlayer p = new MediaPlayer();
    FileInputStream fis = new FileInputStream(getCacheDir() + "/temp.mp3");
    p.setDataSource(fis.getFD());
    p.prepare();
    p.start();
}catch(Exception e){}
1 голос
/ 22 октября 2010

Возможно, каталог кеша - ваш личный каталог, и медиаплеер не может получить к нему доступ Попробуйте сыграть с SD-карты.

...