Android系统提供了MediaScanner,MediaProvider,MediaStore等接口,并且提供了一套数据库表格,通过Content Provider的方式提供给用户。当手机开机或者有SD卡插拔等事件发生时,系统将会自动扫描SD卡和手机内存上的媒体文件,如audio,video,图片等,将相应的信息放到定义好的数据库表格中。在这个程序中,我们不需要关心如何去扫描手机中的文件,只要了解如何查询和使用这些信息就可以了。
MediaStore中定义了一系列的数据表格,通过ContentResolver提供的查询接口,我们可以得到各种需要的信息。下面我们重点介绍查询SD卡上的音乐文件信息。
先来了解一下ContentResolver的查询接口:
Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder);
Uri:指明要查询的数据库名称加上表的名称,从MediaStore中我们可以找到相应信息的参数,具体请参考开发文档。
Projection: 指定查询数据库表中的哪几列,返回的游标中将包括相应的信息。Null则返回所有信息。
selection: 指定查询条件
selectionArgs:参数selection里有 ?这个符号是,这里可以以实际值代替这个问号。如果selection这个没有?的话,那么这个String数组可以为null。
SortOrder:指定查询结果的排列顺序
下面的命令将返回所有在外部存储卡上的音乐文件的信息:
Cursor cursor = query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null,null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
得到cursor后,我们可以调用Cursor的相关方法具体的音乐信息:
//歌曲ID:MediaStore.Audio.Media._ID
Int id = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media._ID));
//歌曲的名称 :MediaStore.Audio.Media.TITLE
String tilte = 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
Int size = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.SIZE));
分享到:
相关推荐
Android 获取音乐文件的信息 Android系统提供了MediaScanner,MediaProvider,MediaStore等接口,并且提供了一套数据库表格,通过Content Provider的方式提供给用户。
主要介绍了Android中通过MediaStore获取音乐文件信息方法,本文讲解了获取歌曲的名称、歌曲的专辑名、歌曲的歌手名、歌曲文件的全路径、歌曲文件的名称、歌曲文件的发行日期等音乐文件信息的方法,需要的朋友可以参考...
通过java代码获取一个文件的媒体信息,包括歌手,歌曲名之类的
Android扫描本地音乐文件的实现,在做音乐播放器的时候都需要搜索手机里面的音乐文件并显示到文件中,并显示到 ListView中。
android通过代码读取手机sd卡中的音乐文件,放在adapter中,然后放到一个ListView中,做音乐列表
android读取sd卡中MP3文件
在android应用播放raw文件中的音乐,支持raw,mp3等格式
android FFT 获取音频的频率并实时显示 android FFT 获取音频的频率并实时显示 android FFT 获取音频的频率并实时显示
Android手机SD卡文件浏览器:遍历出手机Sd卡中的文件。
Android应用源码可以按音乐视频图片分类浏览的安卓文件浏览器
本设计实现的重要功能是播放Mp3格式的音乐文件,而且能够控制音乐的播放,暂停,查看歌手信息,记录自己的心情,联系客服反馈问题等功能。本项目还能够使人们生活更加多样化,也使设计者更加熟悉Android的技术和其它...
Android手机平台音乐播放器毕业论文 目录 第一章 引 言 - 1 - 1.1 项目背景 - 1 - 1.2 编写目的 - 2 - 第二章 系统需求分析 - 3 - 2.1 功能需求(用例图分析) - 3 - 2.1.1 播放器的基本控制需求 - 3 - 2.1.2 播放...
android通过Service广播一首音乐,播放一首mp3文件 ,mp3放在rew文件里。
Music Indicator Music indicator for Android.
主要介绍了Android编程获取sdcard音乐文件的方法,涉及Android针对外部存储卡中多媒体文件的相关操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
Android Studio工程,音乐播放器,实现递归扫描SD根目录歌曲文件,切换播放模式、查看歌曲详细信息等基本功能
android平台的文件管理代码示例,对sd卡文件进行查看,可以查看图片,文本文件,进行音乐播放
Android中如何获取网络资源(如图片,音乐,视频,文档等)的大小! 较小的一个总结 不过很实用!
一个Android文件管理器APP源码,类似于360手机助手的功能,可以记录文件使用次数,可按分类来扫描管理文件或应用信息,并可将扫描的信息存入数据库,扫描SD卡文件,判断是否为文档、判断是否为音乐、判断是否为视频...