如何将原始文件夹中的所有mp3文件按名称和其他元数据放入列表?

时间:2017-07-03 13:29:21

标签: java android

我正在开发一款可播放MP3文件的应用。我想将原始文件夹中的mp3文件转换为歌曲对象的ArrayList,使用mp3文件的名称作为标题。这是我的代码。我从这个问题的answer中得到了它,但它似乎对我不起作用。

public void getSongList() {
    try {
        Log.d("Test", "reached");
        Field[] fields = R.raw.class.getDeclaredFields();

        Log.d("Test", "reached2");
        for (Field f : fields) {
            allSongs.addSong(new Song(0, f.getName(), ""));
        }
        Log.d("Test", "reached3");
    } catch (Exception e) {
        Log.d("Test", "reached4");
        Log.d("Test", allSongs.getSongs().size() + "");
        Log.d("Test", e.toString());
        return;
    }
}

以下是日志:

07-03 15:50:52.497 17106-17106/poc.cevt.hmi.com.musicplayerapp D/Test: reached
07-03 15:50:52.497 17106-17106/poc.cevt.hmi.com.musicplayerapp D/Test: reached2
07-03 15:50:52.498 17106-17106/poc.cevt.hmi.com.musicplayerapp D/Test: reached4
07-03 15:50:52.498 17106-17106/poc.cevt.hmi.com.musicplayerapp D/Test: 0
07-03 15:50:52.498 17106-17106/poc.cevt.hmi.com.musicplayerapp D/Test: java.lang.NullPointerException: Attempt to invoke virtual method 'void poc.cevt.hmi.com.musicplayerapp.AllSongs.addSong(poc.cevt.hmi.com.musicplayerapp.Song)' on a null object reference

我的原始文件夹中有一个mp3文件。歌曲的第一和第三个参数分别是ID和艺术家,我只是想让这个头衔现在起作用。我也欢迎任何替代/更好的解决方案。

1 个答案:

答案 0 :(得分:0)

allSongsnull,因此您拨打NullPointerException时收到addSong()