我正在写一个程序,需要从存储器中播放一首歌曲。我为此设置了一个MediaPlayer(下面的代码片段),但一直使用java。io。IOException:准备失败:状态=0x1。一些网站指出,发生此错误的原因可能是我试图读取的文件不具有世界可读性。如果这是真的,我如何从程序中更改文件权限、绕过此问题或其他解决方案。如果没有,请帮我找出这有什么问题。提前谢谢。
MediaPlayer player = new MediaPlayer();
player.reset();
player.setDataSource(selectedFilePath);
player.prepare();
player.start();
您试图从何处读取文件?您可能正在查看/SD卡/区域,而您的应用程序无法读取\u external\u存储
如果是这种情况,请确保在清单中添加以下行
<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.");