【问题标题】:In Android how to display audio files with thumbnails in to a ListView?在 Android 中,如何在 ListView 中显示带有缩略图的音频文件?
【发布时间】:2017-09-01 07:39:36
【问题描述】:

在 Android 中如何在列表视图中显示带有缩略图的音频文件?

【问题讨论】:

标签: android


【解决方案1】:

这里是从存储中获取音频的代码-

public class SongsManager{
// SDCard Path

private ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();
String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0";
Cursor cursor;
String[] projection = { MediaStore.Audio.Media.ALBUM_ID,
        MediaStore.Audio.Media.DISPLAY_NAME, MediaStore.Audio.Media.DATA,MediaStore.Audio.Media.ARTIST,
        MediaStore.Audio.Media.DURATION

};

@SuppressWarnings("deprecation")
public void getCursor(Activity context) {

    cursor = context.managedQuery(
            MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, projection,
            selection, null, null);

}

public ArrayList<HashMap<String, String>> getPlayList() {

    while (cursor.moveToNext()) {
        HashMap<String, String> song = new HashMap<String, String>();
        song.put("ID", cursor.getString(0));
        song.put("songTitle", cursor.getString(1));
        song.put("songPath", cursor.getString(2));
        song.put("Artist", cursor.getString(3));
        song.put("Duration", cursor.getString(4));
        songsList.add(song);
    }
    // return songs list array
    return songsList;
}

在 ListAdapter getview 方法中使用音频 id 获取音频拇指的代码

Uri sArtworkUri = Uri
                .parse("content://media/external/audio/albumart");
        Uri uri = ContentUris.withAppendedId(sArtworkUri,
                Long.parseLong(songsList.get(position).get("ID")));
        songimage.setImageURI(uri);

【讨论】:

  • managedQuery() 已被弃用 六年。请停止使用。在后台线程上使用ContentResolver,或使用CursorLoader
  • 似乎您应该使用专辑 ID 构建 URI,而不是歌曲/曲目 ID。例如,请参见此处:stackoverflow.com/q/3438809/997940
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-11
  • 1970-01-01
  • 1970-01-01
  • 2012-04-04
相关资源
最近更新 更多