您的位置:首页
获取SD卡中的音乐文件
2017-07-05 20:47
204 查看
小编近期在搞一个音乐播放器App。练练手; 首先遇到一个问题。怎么获取本地的音乐文件?
Music类:
/** * 获取SD卡中的音乐文件 * * @param context * @return */ public static ArrayList<Music> getMusicFile(Context context) { //ArrayList<Music>存放音乐 ArrayList<Music> MusicFiles = new ArrayList<>(); //查询媒体数据库 ContentResolver resolver = context.getContentResolver(); /** * Uri:这个Uri代表要查询的数据库名称加上表的名称。 这个Uri一般都直接从MediaStore里取得,比如我要取全部歌的信息, 就必须利用MediaStore.Audio.Media. EXTERNAL _CONTENT_URI这个Uri。 * */ Cursor cursor = resolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER); //遍历媒体数据库 if (cursor.moveToFirst()) { while (!cursor.isAfterLast()) { //歌曲编号MediaStore.Audio.Media._ID int id = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media._ID)); //歌曲标题 String title = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE)); //歌曲的专辑名MediaStore.Audio.Media.ALBUM String album = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM)); //歌曲的歌手名MediaStore.Audio.Media.ARTIST String artist = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST)); //歌曲文件的路径MediaStore.Audio.Media.DATA String url = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA)); //歌曲的总播放时长MediaStore.Audio.Media.DURATION int duration = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION)); //歌曲文件的大小MediaStore.Audio.Media.SIZE long size = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.SIZE)); if (size > 1024 * 800) { //是否大于800K if (title.equals("<unknown>") || title.equals("")) { title = "未知"; } if ("<unknown>".equals(artist) || "".equals(artist)) { artist = "未知"; } Music music = new Music(id, title, artist, url, album, duration, size); MusicFiles.add(music); } cursor.moveToNext(); } } return MusicFiles; }
Music类:
public class Music { private int id; private String name; private String singerName; private String url; private String album; private int totalTime; private long size; public Music(int id, String name, String singerName, String url, String album, int totalTime, long size) { this.id = id; this.name = name; this.singerName = singerName; this.url = url; this.album = album; this.totalTime = totalTime; this.size = size; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSingerName() { return singerName; } public void setSingerName(String singerName) { this.singerName = singerName; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getAlbum() { return album; } public void setAlbum(String album) { this.album = album; } public int getTotalTime() { return totalTime; } public void setTotalTime(int totalTime) { this.totalTime = totalTime; } public long getSize() { return size; } public void setSize(long size) { this.size = size; } }
相关文章推荐
- 获取SD卡中的音乐文件
- android, 删除SD卡音乐文件。通过getContentResolver读取音乐文件,可以获取到一个完整的路径,直接new File(这括号写获取的路径).delete();
- 获取SD卡上所有的音乐文件信息
- Android平台中应该如何获取音乐文件的信息
- android如何获取SD卡上的多媒体文件
- 获取网页中播放的音乐文件
- [转]---Android获取SD卡视频音频文件
- Android平台中应该如何获取音乐文件的信息
- 获取音乐文件的播放时间及当前进度
- Android获取SD卡视频音频文件
- Android平台中应该如何获取音乐文件的信息
- Android获取SD卡上的APK文件,并且判断是否安装过、是否可以更新到新版本的工具类
- Android平台中应该如何获取音乐文件的信息
- android-v如何获取音乐文件的信息
- [脚本]Unity 3d 播放sd卡音乐或者打开文件
- Android 获取SD卡上的多媒体文件
- java下获取sd卡下的所有文件、路径
- Android.os下的StatFs类主要用来获取文件系统的状态,能够获取sd卡的大小和剩余空间,获取系统内部空间也就是/system的大小和剩余空间等等。
- android项目中如何获取assets下面的文件在SD卡上面的保存路径
- 保存文件到SD卡以及分析setting源代码获取SD卡大小