private void initPlayList() {
    List<SongInfo> songs = new ArrayList<>();
    mSongMap.clear();
    mSongUrls.clear();
    ContentResolver musicResolver = mActivity.getContentResolver();
    Uri musicUri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
    Cursor musicCursor = musicResolver.query(musicUri, null, null, null, null);
    if (musicCursor != null && musicCursor.moveToFirst()) {
      int albumColumn = musicCursor.getColumnIndex(android.provider.MediaStore.Audio.Media.ALBUM);
      int artistColumn = musicCursor.getColumnIndex(android.provider.MediaStore.Audio.Media.ARTIST);
      int displayNameColumn =
          musicCursor.getColumnIndex(android.provider.MediaStore.Audio.Media.DISPLAY_NAME);
      int durationColumn =
          musicCursor.getColumnIndex(android.provider.MediaStore.Audio.Media.DURATION);
      int titleColumn = musicCursor.getColumnIndex(android.provider.MediaStore.Audio.Media.TITLE);
      int idColumn = musicCursor.getColumnIndex(android.provider.MediaStore.Audio.Media._ID);
      do {
        String album = musicCursor.getString(albumColumn);
        String artist = musicCursor.getString(artistColumn);
        String displayName = musicCursor.getString(displayNameColumn);
        long duration = musicCursor.getLong(durationColumn);
        String title = musicCursor.getString(titleColumn);
        long id = musicCursor.getLong(idColumn);

        SongInfo songInfo = new SongInfo();
        songInfo.setAlbum(album);
        songInfo.setArtist(artist);
        songInfo.setDisplayName(displayName);
        songInfo.setDuration((int) duration);
        songInfo.setTitle(title);
        songInfo.setUrl(id + "");
        songs.add(songInfo);
      } while (musicCursor.moveToNext());
    }
    Collections.sort(songs, mSongComparator);
    for (SongInfo song : songs) {
      mSongMap.put(song.getUrl(), song);
      mSongUrls.add(song.getUrl());
    }
  }