Android中通过MediaStore获取音乐文件信息方法
程序员文章站
2022-03-08 17:48:39
android系统提供了mediascanner,mediaprovider,mediastore等接口,并且提供了一套数据库表格,通过content provider的方...
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.titl
复制代码 代码如下:
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));
歌曲文件的名称:mediastroe.audio.media.display_name
复制代码 代码如下:
string display_name = cursor.getstring(cursor.getcolumnindexorthrow(mediastore.audio.media.display_name));
歌曲文件的发行日期:mediastore.audio.media.year
复制代码 代码如下:
string year = cursor.getstring(cursor.getcolumnindexorthrow(mediastore.audio.media.year));
歌曲的总播放时长 :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));
推荐阅读
-
iOS App开发中通过UIDevice类获取设备信息的方法
-
iOS App开发中通过UIDevice类获取设备信息的方法
-
Android中获取apk安装包信息的方法
-
Android中通过view方式获取当前Activity的屏幕截图实现方法
-
Android通过原生方式获取经纬度与城市信息的方法
-
Android app开发中获取cpu arm架构信息及执行shell命令方法
-
Android中通过MediaStore获取音乐文件信息方法
-
Android中获取apk安装包信息的方法
-
Android中通过view方式获取当前Activity的屏幕截图实现方法
-
Android通过原生方式获取经纬度与城市信息的方法