android搜索本地媒体库中的音乐文件
来源:互联网 发布:mysql修改表字段语句 编辑:程序博客网 时间:2024/05/20 09:09
建立一个bean来存储音乐信息
public class MediaEntity implements Serializable {private static final long serialVersionUID = 1L;public int id; //id标识public String title; // 显示名称public String display_name; // 文件名称public String path; // 音乐文件的路径public int duration; // 媒体播放总时间public String albums; // 专辑public String artist; // 艺术家 public String singer; //歌手 public long size;}
通过ContentResolver获取音乐列表
public static List<MediaEntity> getAllMediaList(Context context, String selection) {Cursor cursor = null;List<MediaEntity> mediaList = new ArrayList<MediaEntity>();try {cursor = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,new String[] {MediaStore.Audio.Media._ID,MediaStore.Audio.Media.TITLE,MediaStore.Audio.Media.DISPLAY_NAME,MediaStore.Audio.Media.DURATION,MediaStore.Audio.Media.ARTIST,MediaStore.Audio.Media.DATA,MediaStore.Audio.Media.SIZE},selection, null, MediaStore.Audio.Media.DATE_ADDED + " DESC");if(cursor == null) {Log.d(TAG, "The getMediaList cursor is null.");return mediaList;}int count= cursor.getCount();if(count <= 0) {Log.d(TAG, "The getMediaList cursor count is 0.");return mediaList;}mediaList = new ArrayList<MediaEntity>();MediaEntity mediaEntity = null;//String[] columns = cursor.getColumnNames(); while (cursor.moveToNext()) {mediaEntity = new MediaEntity();mediaEntity.id = cursor.getInt(cursor.getColumnIndex(MediaStore.Audio.Media._ID));mediaEntity.title = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));mediaEntity.display_name = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME));mediaEntity.duration = cursor.getInt(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION));mediaEntity.size = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.SIZE));mediaEntity.durationStr = longToStrTime(mediaEntity.duration);if(!checkIsMusic(mediaEntity.duration, mediaEntity.size)) {continue;}mediaEntity.artist = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));mediaEntity.path = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));mediaList.add(mediaEntity);}} catch (Exception e) {} finally {if(cursor != null) {cursor.close();}}return mediaList;}
/** * 根据时间和大小,来判断所筛选的media 是否为音乐文件,具体规则为筛选小于30秒和1m一下的 */public static boolean checkIsMusic(int time, long size) {if(time <= 0 || size <= 0) {return false;}time /= 1000;int minute = time / 60;//int hour = minute / 60;int second = time % 60;minute %= 60;if(minute <= 0 && second <= 30) {return false;}if(size <= 1024 * 1024){return false;}return true;}
检查sd卡上的媒体文件
private void scanSdCard(){ sendBroadcast(new Intent(/*Intent.ACTION_MEDIA_SCANNER_SCAN_FILE*/Intent.ACTION_MEDIA_MOUNTED,Uri.parse("file://" + Environment.getExternalStorageDirectory().getAbsolutePath()))); }
0 0
- android搜索本地媒体库中的音乐文件
- 获取Android媒体库中的音乐文件
- 获取媒体库中的音乐文件
- 利用Android的媒体库,遍历SD卡中的音乐文件,并用Service制作简单的音乐播放
- android设备中的媒体库
- 刷新android中的媒体库
- Android开发:扫描本地音乐文件
- Android mediaplayer 播放本地音乐文件
- Android--MediaPlayer(实现列表选歌,上一首,下一首,清空播放列表,搜索本地音乐文件)
- 搜索音乐文件
- android 音乐播放器 本地音乐文件
- android学习之选择媒体库中的图片
- android学习之选择媒体库中的图片
- android学习之选择媒体库中的图片
- 将inkPresenter中的涂鸦保存图片至本地媒体库
- Android 多媒体(读取网络中的音乐文件)
- 【Android】本地图片选择(打开媒体库,选择图片)
- 【Android】本地图片选择(打开媒体库,选择图片)
- ffmpeg基本命令使用
- matplotlib 画图 条形图
- 2、kernel
- 食堂承包中热菜的烹调控制顺序
- i++ 与 ++i 的区别(我看一遍明白了)
- android搜索本地媒体库中的音乐文件
- 旧文 2012.12.07 关于和赛扶
- Windows下 Git 的基本操作
- 理解linux内存
- scroll
- matplotlib 画图 散列图
- java连接Excel数据库读取,写入,操纵Excel表格
- 如何在ASP.NET项目里面正确使用Linq to Sql
- [第1篇] 谈谈分布式事务之一:SOA需要怎样的事务控制方式