• 存储音乐文件的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;}

更多相关文章

  1. Android播放在线音乐文件
  2. Android中简单的音乐播放器
  3. android实现调用系统音乐播放器
  4. Android 给贪吃蛇游戏加背景音乐
  5. android音乐播放器实现
  6. 利用一个singleInstance的activity实现音乐播放器锁屏

随机推荐

  1. Android下的Wifi (上层流程)
  2. Android(安卓)Studio 快捷键中英文对译
  3. 我的Android进阶之旅:经典的大牛博客推荐
  4. android的正向传值与反向传值
  5. OnGestureListener替代传统的ontoucheven
  6. Android中打电话的数据流程分析
  7. 关于Unable to execute dex: Java heap s
  8. Android(安卓)APK报错:java.io.IOExcepti
  9. Android(安卓)获取手机中所有图片
  10. Android之属性动画Animator