Android平台中应该如何获取音乐文件的信息

转载 2012年03月28日 00:29:42
Android系统提供了MediaScanner,MediaProvider,MediaStore等接口,并且提供了一套数据库表格,通过 Content Provider的方式提供给用户。当手机开机或者有SD卡插拔等事件发生时,系统将会自动扫描SD卡和手机内存上的媒体文件,如 audio,video,图片等,将相应的信息放到定义好的数据库表格中。在这个程序中,我们不需要关心如何去扫描手机中的文件,只要了解如何查询和使用 这些信息就可以了。
  MediaStore中定义了一系列的数据表格,通过ContentResolver提供的查询接口,我们可以得到各种需要的信息。下面我们重点介绍查询SD卡上的音乐文件信息。
  先来了解一下ContentResolver的查询接口:
[code]Cursor  query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder);  [/code]
        Uri:指明要查询的数据库名称加上表的名称,从MediaStore中我们可以找到相应信息的参数,具体请参考开发文档。 
        Projection: 指定查询数据库表中的哪几列,返回的游标中将包括相应的信息。Null则返回所有信息。
        selection: 指定查询条件
        selectionArgs:参数selection里有 ?这个符号是,这里可以以实际值代替这个问号。如果selection这个没有?的话,那么这个String数组可以为null。
        SortOrder:指定查询结果的排列顺序
下面的命令将返回所有在外部存储卡上的音乐文件的信息:
[code]Cursor cursor = query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null,  
                null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);  [/code]
得到cursor后,我们可以调用Cursor的相关方法具体的音乐信息:

[code]
歌曲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)); 

来自:http://blog.csdn.net/duchunchao/article/details/6326282

Android平台中应该如何获取音乐文件的信息

Android系统提供了MediaScanner,MediaProvider,MediaStore等接口,并且提供了一套数据库表格,通过Content Provider的方式提供给用户。当手机开机或者...
  • flyingfox023
  • flyingfox023
  • 2014年05月04日 16:06
  • 1735

Android平台中应该如何获取音乐文件的信息

Android系统提供了MediaScanner,MediaProvider,MediaStore等接口,并且提供了一套数据库表格,通过Content Provider的方式提供给用户。当手机开机或者...
  • u010120090
  • u010120090
  • 2015年10月05日 13:14
  • 207

Android平台中应该如何获取音乐文件的信息

Android系统提供了MediaScanner,MediaProvider,MediaStore等接口,并且提供了一套数据库表格,通过Content Provider的方式提供给用户。当手机开机或者...
  • ygy123_csdn
  • ygy123_csdn
  • 2014年08月25日 17:02
  • 219

android播放器如何获取音乐文件信息

android自带的音乐播放器中,在获取音乐文件信息的时候是通过扫描得到相关信息的。扫描时使用扫描器MediaScanner完成。 Android系统提供了MediaScanner、MediaPro...
  • hellofeiya
  • hellofeiya
  • 2013年01月04日 14:16
  • 13951

Android 获取音乐文件的信息

Android系统提供了MediaScanner,MediaProvider,MediaStore等接口,并且提供了一套数据库表格,通过Content Provider的方式提供给用户。当手机开机或者...
  • Vincent20111024
  • Vincent20111024
  • 2013年07月11日 23:03
  • 959

Android获取音乐文件的信息

Android系统提供了MediaScanner、MediaProvider、MediaStore等接口,并且提供了一套数据库表格,通过Content Provider的方式提供给用户。当手机开机或者...
  • hb8676086
  • hb8676086
  • 2015年12月07日 11:29
  • 260

C# 获取音乐相关信息

目前对于支持大部分格式的方法找到了两个 像ID3这样只支持MP3和m4a格式的就不说了1.使用Microsoft Shell Controls And Automation 即引用对应的com组件...
  • qq_22033759
  • qq_22033759
  • 2016年07月20日 14:37
  • 1195

获取外存卡上的音乐文件信息

android软件开发中,不可避免的需要涉及到音乐之类的开发知识。 在android系统中,我们不必自己开发程序去遍历外存卡的每一个文件夹或者逐个比较文件的后缀加到数组中慢慢弄。 android自己提...
  • gan303
  • gan303
  • 2014年01月12日 20:04
  • 351

关于iOS获取音乐库的音乐信息 (获取本地音乐文件)

年前在项目开发的时候,当时有一个上传本地音乐文件的一个功能。需求是从本地获取音乐文件,并对音乐文件进行截取。实现获取本地音乐文件的方法的代码如下:MPMediaQuery *allMp3 = [[MP...
  • ismilesky
  • ismilesky
  • 2016年02月18日 17:23
  • 6346

如何获取手机上所有的音乐文件

(1)如何获取手机里所有歌曲的信息?     如果要解决这个问题,那么我们首先要知道在Android系统中,是如何对歌曲信息进行管理的。     在Android中,系统为多媒体类型的文件(比...
  • wei_chong_chong
  • wei_chong_chong
  • 2016年06月07日 15:24
  • 4876
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android平台中应该如何获取音乐文件的信息
举报原因:
原因补充:

(最多只允许输入30个字)