Android 获取本地音乐文件
16lz
2021-01-23
- 存储音乐文件的model
public class MusicInfo { private long id; private String title;//音乐名称 private String data;//音乐文件 private String album;//专辑 private String artist;//艺人 private int duration;//音乐时长 private long size;//音乐文件大小 public long getId() { return id; } public void setId(long id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getData() { return data; } public void setData(String data) { this.data = data; } public String getAlbum() { return album; } public void setAlbum(String album) { this.album = album; } public String getArtist() { return artist; } public void setArtist(String artist) { this.artist = artist; } public int getDuration() { return duration; } public void setDuration(int duration) { this.duration = duration; } public long getSize() { return size; } public void setSize(long size) { this.size = size; }}
- 通过ContentResolver查询数据存储到model
private static final Uri URI = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;private static final String[] MUSIC_PROJECTION = new String[] { MediaStore.Audio.Media._ID, MediaStore.Audio.Media.TITLE, MediaStore.Audio.Media.DATA, MediaStore.Audio.Media.ALBUM, MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media.DURATION, MediaStore.Audio.Media.SIZE};private static final String SELECTION = "mime_type in ('audio/mpeg','audio/x-ms-wma') and bucket_display_name <> 'audio' and is_music > 0 ";private static final String SORT_ORDER = MediaStore.Audio.Media.DATA;private List<MusicInfo> getMusicInfo() { List<MusicInfo> musicInfos = new ArrayList<>(); ContentResolver resolver = getContentResolver(); Cursor cursor = resolver.query(URI, MUSIC_PROJECTION, SELECTION, null, SORT_ORDER); if (cursor != null) { while (cursor.moveToNext()) { MusicInfo musicInfo = new MusicInfo(); long id = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media._ID)); String title = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE)); String data = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA)); String album = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM)); String artist = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)); int duration = cursor.getInt(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION)); long size = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.SIZE)); musicInfo.setId(id); if (!TextUtils.isEmpty(title)) { musicInfo.setTitle(title); } if (!TextUtils.isEmpty(data)) { musicInfo.setData(data); } if (!TextUtils.isEmpty(album)) { musicInfo.setAlbum(album); } if (!TextUtils.isEmpty(artist)) { musicInfo.setArtist(artist); } if (duration != 0) { musicInfo.setDuration(duration); } if (size != 0) { musicInfo.setSize(size); } musicInfos.add(musicInfo); } cursor.close(); } return musicInfos;}
更多相关文章
- Android播放在线音乐文件
- Android中简单的音乐播放器
- android实现调用系统音乐播放器
- Android 给贪吃蛇游戏加背景音乐
- android音乐播放器实现
- 利用一个singleInstance的activity实现音乐播放器锁屏