Android简单媒体播放器问题

Android简单媒体播放器问题,android,caching,mp3,media-player,Android,Caching,Mp3,Media Player,有人能指出我的代码有什么问题吗 try{ MediaPlayer p = new MediaPlayer(); p.setDataSource(getCacheDir() + "/temp.mp3"); p.prepare(); p.start(); }catch(Exception e){} MediaPlayer p在调用prepare()时捕获异常。文件temp.mp3已经在缓存文件夹中,并且没有损坏,或者其他任何情况,但是它不会被播放。是因为MediaPlayer不能在缓存上播放文件吗

有人能指出我的代码有什么问题吗

try{
MediaPlayer p = new MediaPlayer();
p.setDataSource(getCacheDir() + "/temp.mp3");
p.prepare();
p.start();
}catch(Exception e){}
MediaPlayer p在调用prepare()时捕获异常。文件temp.mp3已经在缓存文件夹中,并且没有损坏,或者其他任何情况,但是它不会被播放。是因为MediaPlayer不能在缓存上播放文件吗


我希望有人能告诉我我做错了什么。提前谢谢

缓存目录可能是您的私有目录,媒体播放器无法访问它。尝试从SD卡播放。

使用文件描述符:

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

如果您发布异常的StackTrace,这将有所帮助!另外,您是否尝试过提供“getCacheDir()”返回内容的日志?可能路径不完整/无法访问/等等…是的,我刚刚知道我的缓存目录无法立即访问。我必须使用Filedescriptor,它就像一个符咒。谢谢你的提示。