有人可以指点我的代码有什么问题吗?
try{
MediaPlayer p = new MediaPlayer();
p.setDataSource(getCacheDir() + "/temp.mp3");
p.prepare();
p.start();
}catch(Exception e){}
每当调用prepare()时,MediaPlayer p都会捕获异常。文件temp.mp3已经在缓存文件夹中,并且它没有损坏,或者它没有被播放。 MediaPlayer无法在缓存中播放文件吗?
我希望有人能让我知道我做错了什么。提前致谢!
答案 0 :(得分:1)
可能缓存目录是您的私人目录,媒体播放器无法访问它。尝试从SD卡播放。
答案 1 :(得分:1)
使用Filedescriptor:
try{
MediaPlayer p = new MediaPlayer();
FileInputStream fis = new FileInputStream(getCacheDir() + "/temp.mp3");
p.setDataSource(fis.getFD());
p.prepare();
p.start();
}catch(Exception e){}