- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android 读取 Mp3 音乐文件的方法
在做 Mp3 音乐播放器的时候, 需要经常用到读取文件的 操作,看过网上一些人写的读取方法,做个总结,部分代码 有相似之处。
一、通过过滤器的方式过滤文件
[java] view plaincopypublic class MusicFilter implements
FilenameFilter{
public boolean accept(File dir , String
name){
return
(name.endsWith(.mp3)); } }
[java] view plaincopypublic void
musicList(){ mMusicList.clear();// 先清除列表里之前的 信息 ,mMusicList 是自定义的 list File home=new
File(MUSIC_PATH); if(home.listFiles(new
MusicFilter()).lengthgt;0){ for(File
mMusicList.add(file.getNammMusicList 列表} 二、通过递归, 判断文件后缀名
mMusicList.add(file.getNam
mMusicList 列表
} 二、通过递归, 判断文件后缀名
的方法
[java] view plaincopypublic void Search(File file ,String[]
ext){if(file!=null){if(file.isDirectory()){// 如果是文件夹File[] listFile=file.listFiles();// 列出所有的文件放在 listFile 这个 File 类型数组中if(listFile!=null){for(int i=0;isearch(listFile[i], ext);// 递归,直到把所有文件遍历}else{/
ext){
if(file!=null){
if(file.isDirectory()){// 如
果是文件夹
File[] listFile=file.listFiles();// 列
出所有的文件放在 listFile 这个 File 类型数组中
if(listFile!=null){
for(int i=0;i
search(listFile[i], ext);// 递归,直到把所有文件遍历
}else{/
/否则就是文件
String
fileName=file.getAbsolutePath();// 返回抽象路径名的绝对路
径名字符串
String name=file.getName();// 获
得文件的名称
for(int i=0;i
if(fileName.endsWith(ext[i])){//判断文件后缀名是否包含我们
if(fileName.endsWith(ext[i])){//
判断文件后缀名是否包含我们
定义的格式list.add(name);break;
定义的格式
list.add(name);
break;
} } 调用的时候先声明
} } 调用的时候先声明
file 和 String[] ext
[java] view plaincopyprivate String[] ext={.mp3, .awv}// 定
义我们要查找的文件格式 File file=Environment.getExternalStorageDirectory();// 获得 SD 卡的 路径 search(file ,ext);
三、通过 MediaStore 的方式查询数据库得到歌曲信息
MediaStore 这个类是 Android 系统提供的而一个多媒体数据 库,android中多媒体信息都可以从这里提取, 包括了多媒体
数据库的所有信息,例如音频、视频和图像, android 把所有 的多媒体数据接口进行了封装,所有的数据库不用自己进行 创建,直接调用 ContentResolver 去调用那些已经封装好的接 口就可以进行数据库操作了,操作视频和图像的方法和操作 音频类似,只需要将 URL 部分改动就可以了。 首先,要得到一个 ContentResolver 实例,利用 Activity 或者 Service 中的 Context 也可以
ContentResolvermResolver =Context.getContentReslover;
Cursor cursor =mResolver.query(MediaStore.Audio.Media.EXTERNAL_CO NTENT_URL,null,null,null,MediaStore.Audio.Media.DEFAU
文档评论(0)