android上原始文件夹和sdcard之间的MediaPlayer问题

Posted

技术标签:

【中文标题】android上原始文件夹和sdcard之间的MediaPlayer问题【英文标题】:MediaPlayer issue between raw folder and sdcard on android 【发布时间】:2011-08-26 11:09:48 【问题描述】:

我正在制作一个使用搜索栏播放歌曲的应用。如果我从原始文件夹播放它可以工作,但如果我从 sdcard 播放歌曲,它会显示空指针异常。

private MediaPlayer mediaPlayer;
mediaPlayer = MediaPlayer.create(this, R.raw.t1); // it works

//  switch to sdcard
mediaPlayer.setDataSource("/sdcard/t1.mp3"); // null pointer exception.

我不知道是什么问题。请帮帮我。

【问题讨论】:

【参考方案1】:

你需要确定你给setDataSource()的路径 完全正确。最好的方法是使用android.os.Environment.getExternalStorageDirectory()

,而不是硬编码对“/sdcard/”的引用

试试这个,我想它会帮助你

MediaPlayer mediaPlayer = new MediaPlayer();
File path = android.os.Environment.getExternalStorageDirectory();
mediaPlayer.setDataSource(path + "/t1.mp3");

希望对你有帮助

【讨论】:

以上是关于android上原始文件夹和sdcard之间的MediaPlayer问题的主要内容,如果未能解决你的问题,请参考以下文章

如何访问我放在 res 文件夹中的原始资源?

在android中使用http比较服务器上文件的大小和sdcard上的文件大小

如何在 Android 上的 SDCard 上打开 HTML 文件

Android 的外部 SDCard 文件路径

android 如何把文件 从 sdcard 拷贝到 asset

Android - 压缩位图,然后将其保存到SDCARD的活动结果中