在Android应用程序中读取mp3标签

时间:2013-03-04 11:48:59

标签: java android tags mp3

我使用jid3lib for java。当我正在使用存储在我的计算机中的文件库时,它工作得很好,但是当我尝试在模拟器的SD卡上读取文件的mp3标签时,我得到了Exeption。

我使用以下代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_activity);

    File musicPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC);

    File[] songs = musicPath.listFiles();

    for (int i=0; i < songs.length; i++){
        try {
            MP3File song = new MP3File(new File(songs[i].getPath()));
            Log.d("TEST", song.getID3v1Tag().getAlbum() );

        } catch (TagException e) {
            Log.d("TEST", "Tag Exception");
            e.printStackTrace();
        } catch (Exception e) {
            Log.d("TEST", "Exception");             
            e.printStackTrace();
        }

    }
}

我在sdcard中放了2个mp3文件,但我在日志中仍然有异常。 这可能是什么问题?

我在LogCat上收到以下错误:

java.io.FileNotFoundException: /mnt/sdcard/Music/song.mp3: open failed: EACCES (Permission denied)

但是当我查看DDMS的文件资源管理器时,我可以看到此路径下的文件,即使我使用循环来打印文件的名称它也会显示正确的名称。

1 个答案:

答案 0 :(得分:1)

  

EACCES(许可被拒绝)

在清单文件中添加READ_EXTERNAL_STORAGE权限。

而且,也许WRITE_EXTERNAL_STORAGE

相关问题