android音乐播放器-------使用android系统自带的数据库
2011-10-10 22:56
483 查看
这几天在做一个音乐播放器,需要读取SD卡上的所有音乐文件。
我的想法是遍历所有SD卡上的所有文件目录,把所有的.mp3 等音乐格式的文件全部读取出来,在显示在listview上。
这个做法是最容易想到的,也是可行的。
缺点是显而易见的,就是效率低,占用了大量的资源。
后来在飞哥的指导下,才知道android系统中默认有个数据库,来保存所有的音乐格式的文件。在系统的位置:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/09/b7b2df42835edfdf06c7f81eafffcd1f.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/09/73550f03fe8c3e68674379cf7fe768a2.gif)
这个数据库建的很详细,基本上想要的信息都能找到。
之后直接使用这个数据的数据就行了。
例如:
顺便把直接读取CD卡上mp3文件的方法写出来,实现了一个接口:
我的想法是遍历所有SD卡上的所有文件目录,把所有的.mp3 等音乐格式的文件全部读取出来,在显示在listview上。
这个做法是最容易想到的,也是可行的。
缺点是显而易见的,就是效率低,占用了大量的资源。
后来在飞哥的指导下,才知道android系统中默认有个数据库,来保存所有的音乐格式的文件。在系统的位置:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/09/b7b2df42835edfdf06c7f81eafffcd1f.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/09/73550f03fe8c3e68674379cf7fe768a2.gif)
这个数据库建的很详细,基本上想要的信息都能找到。
之后直接使用这个数据的数据就行了。
例如:
/** * 显示音乐列表 */ private void showListView() { String[] projection = { MediaStore.Audio.AudioColumns._ID, MediaStore.Audio.AudioColumns.ARTIST, MediaStore.Audio.AudioColumns.TITLE, MediaStore.Audio.AudioColumns.DURATION }; Cursor c = getContentResolver().query( MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, projection, null, null, null); musicList = new int[c.getCount()]; int index = 0; while (c.moveToNext()) { musicList[index] = c.getInt(0); index++; } startManagingCursor(c); String[] from = { MediaStore.Audio.AudioColumns.TITLE, MediaStore.Audio.AudioColumns.ARTIST, MediaStore.Audio.AudioColumns.DURATION }; int[] to = { R.id.tv_musicname, R.id.tv_singer, R.id.tv_musictime }; MusicListAdapter adapter = new MusicListAdapter(this, R.layout.musiclist_item, c, from, to); mListView.setAdapter(adapter); }
顺便把直接读取CD卡上mp3文件的方法写出来,实现了一个接口:
package com.ll28; import java.io.File; import java.io.FilenameFilter; public class MusicFilter implements FilenameFilter { @Override public boolean accept(File dir, String filename) { return filename.endsWith(".mp3"); } }
相关文章推荐
- Android系统自带的常用数据库
- android开发中系统自带语音模块的使用
- android系统自带的Service原理与使用
- android开发中系统自带语音模块的使用
- android系统自带的Service原理与使用(转)
- android系统自带的Service原理与使用
- Unity3D-Android直接使用系统自带邮件发送反馈
- Android 使用系统自带分享
- Android系统中自带了很多图标,我们的程序可以方便使用。
- 【Android】webView 使用 系统自带搜索对话框问题
- 使用Android系统自带的icon图标
- Android数据库SQLite使用详解二 : 学生管理系统的简单实现
- Android使用ContentObserver监听数据库变化 接受指定号码的短信,并且不让系统截取到通知用户
- 关于android系统自带数据库SQLite操作的重要易犯错误
- 关于Android的轻量级数据库SQLlite的使用实践小项目 (生管理系统(附源码))
- android系统自带的Service原理与使用
- 搭建android版本更新服务器使用android系统自带的DownloadManager下载文件