【问题标题】:Android Simple MediaPlayer problemAndroid 简单的 MediaPlayer 问题
【发布时间】:2010-10-22 09:40:30
【问题描述】:

有人可以指出我的代码有什么问题吗?

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

MediaPlayer p 在调用 prepare() 时捕获异常。文件 temp.mp3 已经在缓存文件夹中,并且没有损坏或没有损坏,但没有播放。是不是MediaPlayer无法播放缓存中的文件?

我希望有人可以告诉我我做错了什么。提前致谢!

【问题讨论】:

  • 如果您发布异常的 StackTrace 会有所帮助!另外,您是否尝试过一个日志,它可以为您提供“getCacheDir()”返回的任何内容?可能路径不完整/无法到达/等...

标签: android caching mp3 media-player


【解决方案1】:

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

【讨论】:

  • 是的,我只知道无法立即访问我的缓存目录。我必须为此使用 Filedescriptor,它就像一个魅力。感谢您的提示。
【解决方案2】:

使用文件描述符:

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

【讨论】:

    猜你喜欢
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-11
    相关资源
    最近更新 更多