使用MeidaStore.Audio获得手机中的音频文件
来源:互联网 发布:印象笔记 为知笔记 编辑:程序博客网 时间:2024/06/06 00:41
MediaStore是安卓系统自带的多媒体系统数据库,他在每次开机时刷新一次,可以通过Cursor这个类对数据库进行访问与修改,修改之后需用广播强制刷新。View Code
使用Cursor必须通过Context获得ContentResolver的对象实例。
Cursor cursor1 = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,null,null,null,null);
代码中的context既是调用该函数的活动的对象,先上个封装了音乐信息的类
public class Music { private String filename; private String title; private int during; private String singer; private String type; private String size; private String fileUrl; public Music(String filename,String title,int during,String singer,String type,String size,String fileUrl){ this.filename = filename; this.title = title; this.during = during; this.singer = singer; this.type = type; this.size = size; this.fileUrl = fileUrl; } public String toString(){ return "song[filename="+filename+", title="+title+", during="+during+", singer="+singer+", type="+type+", size="+size+", fileUrl="+fileUrl+"]"; } public String getFilename() { return filename; } public void setFilename(String filename) { this.filename = filename; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public int getDuring() { return during; } public void setDuring(int during) { this.during = during; } public String getSinger() { return singer; } public void setSinger(String singer) { this.singer = singer; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getSize() { return size; } public void setSize(String size) { this.size = size; } public String getFileUrl() { return fileUrl; } public void setFileUrl(String fileUrl) { this.fileUrl = fileUrl; } }
下面就是用Cursor操作数据库的帮助类了
public class MusicHelper{ public static List<Music> songs = new ArrayList<Music>(); public static List<Music> getAllsongs(Context context){ Cursor cursor1 = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,null,null,null,null); getcorrSongs(cursor1); Cursor cursor2 = context.getContentResolver().query(MediaStore.Audio.Media.INTERNAL_CONTENT_URI,null,null,null,null); getcorrSongs(cursor2); return songs; } public static void getcorrSongs(Cursor cursor){ Music song = null; if(cursor != null){ while(cursor.moveToNext()){ String filename = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME)); String title = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE)); int during = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION)); String singer = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST)); String type = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.MIME_TYPE)); String size = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.SIZE)); String date = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA)); song = new Music(filename,title,during,singer,type,size,date); songs.add(song); } cursor.close(); } }}
参数content即用活动的this引用传入。
allsongs = MusicHelper.getAllsongs(this);
0 0
- 使用MeidaStore.Audio获得手机中的音频文件
- 搜索手机中的所有音频文件
- h5 audio播放音频文件
- Android获得手机中的文件
- 使用Contenprovider获取手机联系人,获取外部的音频文件
- Play audio Files (播放音频文件)
- 【转】PCM Audio,PCM格式音频文件 详解
- 获得android手机中的传感器信息
- 使用HttpClient获得手机归属地
- 使用AVAudioPlayer播放音频文件
- 使用MediaPlayer播放音频文件
- 使用java播放音频文件
- html5 audio 获得时长
- 如何裁剪音频文件 Audio Editor Tool(WavePad Sound Editor)
- Android 手机录制wav格式音频文件实现
- 查看手机SD卡视频音频文件信息
- 获取手机的音频文件展示并播放
- [RK3288][Android6.0] Audio中的period_size使用规则
- Proxy动态代理
- POJ2239二分匹配
- poj1523赤裸裸的割点
- POJ2594拐点弯的二分
- poj2195 bfs+最小权匹配
- 使用MeidaStore.Audio获得手机中的音频文件
- Issue 182191:Adjustpan works only first time if EditText's gravity is center or center_horizontal
- 为工程添加上下文菜单(ContextMenu)
- JAVA排序
- 关于-[UITableView _configureCellForDisplay:forIndexPath:].....UITableView.m:7962错误的解决
- MediaStore类的使用
- 各种协议的探究
- hdu4489 组合公式+dp
- 简单递推公式转换矩阵求解