Android MediaPlayer IOException

时间:2012-07-31 21:42:57

标签: java android android-mediaplayer

我正在编写一个程序,我需要从存储中播放一首歌。我为此设置了一个MediaPlayer(下面的代码片段),但不断得到一个java.io.IOException:准备失败:status = 0x1。一些网站表示可能会发生此错误,因为我尝试阅读的文件不是世界可读的。如果是这样,我怎样才能从程序中更改文件权限,解决此问题或其他解决方案。如果没有,请帮我弄清楚这有什么问题。提前谢谢。

MediaPlayer player = new MediaPlayer();
player.reset();
player.setDataSource(selectedFilePath);
player.prepare();
player.start();

1 个答案:

答案 0 :(得分:7)

您在哪里尝试从中读取文件?您可能正在查看/ sdcard /区域,并且您的应用程序无法读取read_external_storage

如果是这种情况,请确保将以下行添加到清单

 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

[编辑] 我不确定你要从哪里加载,但它可能有助于使用描述符而不是路径。看看这是否有帮助:

FileInputStream fis = new FileInputStream(locationOfFile);
mediaPlayer.setDataSource(fis.getFD());

如果这仍然无效,我建议您尝试使用其他文件名,以确保您的媒体播放器设置正确无误。或者你可以做类似

的事情
File thisFile = new File("/storage/sdcard0/Music/song.mp3");
if (thisFile.exists())
   Log.v("file", "Exists");
else
   Log.v("file", "Could not be located.");