下面介绍一下Andriod多媒体框架对开发者提供的支持有哪些。
              1. MediaScannerReceiver
                  这个广播接收者在接收到ACTION_BOOT_COMPLETED、ACTION_MEDIA_MOUNTED或 ACTION_MEDIA_SCANNER_SCAN_FILE 广播时对SD卡中的图片、音乐和视频文件进行了扫描,因为扫描不能影响用户使用,这里启动了一个服务MediaScannerService,扫描的文件类型如下:
 
/* Audio */ 
            addFileType("MP3", FILE_TYPE_MP3, "audio/mpeg"); 
            addFileType("M4A", FILE_TYPE_M4A, "audio/mp4"); 
            addFileType("WAV", FILE_TYPE_WAV, "audio/x-wav"); 
            addFileType("AMR", FILE_TYPE_AMR, "audio/amr"); 
            addFileType("AWB", FILE_TYPE_AWB, "audio/amr-wb"); 
            addFileType("WMA", FILE_TYPE_WMA, "audio/x-ms-wma"); 
            addFileType("OGG", FILE_TYPE_OGG, "application/ogg"); 
            addFileType("MID", FILE_TYPE_MID, "audio/midi"); 
            addFileType("XMF", FILE_TYPE_MID, "audio/midi"); 
            addFileType("RTTTL", FILE_TYPE_MID, "audio/midi"); 
            addFileType("SMF", FILE_TYPE_SMF, "audio/sp-midi"); 
            addFileType("IMY", FILE_TYPE_IMY, "audio/imelody"); 
 /* Video */             addFileType("MP4", FILE_TYPE_MP4, "video/mp4"); 
            addFileType("M4V", FILE_TYPE_M4V, "video/mp4"); 
            addFileType("3GP", FILE_TYPE_3GPP, "video/3gpp"); 
            addFileType("3GPP", FILE_TYPE_3GPP, "video/3gpp"); 
            addFileType("3G2", FILE_TYPE_3GPP2, "video/3gpp2"); 
            addFileType("3GPP2", FILE_TYPE_3GPP2, "video/3gpp2"); 
            addFileType("WMV", FILE_TYPE_WMV, "video/x-ms-wmv"); 
            
/* Image */ 
            addFileType("JPG", FILE_TYPE_JPEG, "image/jpeg"); 
            addFileType("JPEG", FILE_TYPE_JPEG, "image/jpeg"); 
            addFileType("GIF", FILE_TYPE_GIF, "image/gif"); 
            addFileType("PNG", FILE_TYPE_PNG, "image/png"); 
            addFileType("BMP", FILE_TYPE_BMP, "image/x-ms-bmp"); 
            addFileType("WBMP", FILE_TYPE_WBMP, "image/vnd.wap.wbmp"); 
            
/* Audio Play List */ 
            addFileType("M3U", FILE_TYPE_M3U, "audio/x-mpegurl"); 
            addFileType("PLS", FILE_TYPE_PLS, "audio/x-scpls"); 
            addFileType("WPL", FILE_TYPE_WPL, "application/vnd.ms-wpl");
 
            扫描结束后写入到数据库中。
            其他的应用程序通过接收MediaScannerService发出的ACTION_MEDIA_SCANNER_STARTED 和ACTION_MEDIA_SCANNER_FINISHED意图能够知道什么时候扫描操作开始和结束。
 
              2. MediaProvider
                  对于存入数据库的多媒体信息,MediaProvider提供了数据访问的接口。MediaProvider继承了ContentProvider,我们先来看一下数据查询接口:
           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);
  
  
        获取ID标签中的歌曲的专辑名:MediaStore.Audio.Media.ALBUM 
               String album = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM));  
        其他具体参数请参考MediaStore类。
 
 

Android多媒体框架对音乐播放器的支持的更多相关文章

  1. Android基于发展Service音乐播放器

    这是一个基于Service组件的音乐播放器,程序的音乐将会由后台的Service组件负责播放,当后台的播放状态改变时,程序将会通过发送广播通知前台Activity更新界面:当用户单击前台Activit ...

  2. 项目源码--Android类似酷狗音乐播放器

    下载源码 知识技能概要: 1.音乐文件的扫描与管理 2.音频流的解码 3. UI控件的综合使用 4.播放列表方式管理 5.随机播放方式 6.源码带详细的中文注释 ...... 详细介绍 1. 音乐文件 ...

  3. Android 仿百度网页音乐播放器圆形图片转圈播放效果

    百度网页音乐播放器的效果  如下 : http://www.baidu.com/baidu?word=%E4%B8%80%E7%9B%B4%E5%BE%88%E5%AE%89%E9%9D%99& ...

  4. Android应用开发--MP3音乐播放器代码实现(一)

    需求1:将内存卡中的MP3音乐读取出来并显示到列表当中 1.   从数据库中查询所有音乐数据,保存到List集合当中,List当中存放的是Mp3Info对象 2.   迭代List集合,把每一个Mp3 ...

  5. Android课程---简单的音乐播放器

    第一个:用Activity实现 activity_music_play1.xml <?xml version="1.0" encoding="utf-8" ...

  6. IOS实现多媒体音频之音乐播放器

    随着智能手机市场越来越活跃,相应的app也变得五彩缤纷,各式各样,让你的app更吸引人多媒体技术不可避免.通过对音频和视频等控制让你的app更加丰富多彩,今天和大家一起研究下基本的音频使用.本文只提供 ...

  7. 简单风格 在线音乐播放器(支持wav,MP3等)

    找了两天终于找到了,支持wav,MP3,其他格式没有测试. 1.修复了jQuery判断ie的bug, 2.修复播放循环 下载地址: http://pan.baidu.com/s/1o6upwHs

  8. html5版 音乐播放器

    html5版本音乐播放器,支持iOS设备,案例地址:http://www.xttblog.com/?p=1277 功能说明 支持iOS设备,但是iOS不支持自动下一曲,这是iOS本身限制,支持touc ...

  9. Android学习笔记_24_多媒体MediaPlayer对象之音乐播放器与SoundPool声音池

    一.MediaPlayer对象常用方法介绍: MediaPlayer mediaPlayer = new MediaPlayer(); if (mediaPlayer.isPlaying()) { m ...

随机推荐

  1. C++ 四则运算简单设计

    如果说要用C++写一个简单的四则运算的程序,相信难不到人,这还不简单吗?然后用不了五分钟,三下五除二,就出了下面的代码,一调试,没问题..... #include <iostream> u ...

  2. 《openstack 和hadoop的区别是什么?》

    openstack 和hadoop的区别是什么? (一) openstack仿照的Amazon的云,hadoop仿照的是Google的云 openstack注重的是虚拟化/虚拟机及其配套的服务,had ...

  3. 【Qt】Qt国际化(系统文本-QMessageBox按钮、QLineEdit右键菜单等)【转】

    简介 使用Qt的时候,经常会遇到英文问题,例如:QMessageBox中的按钮.QLineEdit.QSpinBox.QScrollBar中的右键菜单等.通常情况下,我们软件都不会是纯英文的,那么如何 ...

  4. canvas 绘点图

    canvas 绘点图 项目中需要一个记录点实时变动的信息,在此记录一下: <!DOCTYPE html> <html lang="en"> <head ...

  5. 方法的可变长参数 传入参数个数不确定可用(Type ... values)

    /** * 可变长的参数. * 有时候,我们传入到方法的参数的个数是不固定的,为了解决这个问题,我们一般采用下面的方法: * 1. 重载,多重载几个方法,尽可能的满足参数的个数.显然这不是什么好办法. ...

  6. mac OS X下制定ll指令

    ll作为ls -l的快捷方式,但系统本身没有,需要通过如下方法生成 1.在用户目录下新建.bash_profile文件 # vim .bash_profile 2.添加内容 alias ll = 'l ...

  7. 解析php开发中的中文编码问题

    其实php开发中的中文编码并没有想像的那么复杂,虽然定位和解决问题没有定规,各种运行环境也各不尽然,但后面的原理是一样的. 了解字符集的知识是解决字符问题的基础. PHP程序设计中中文编码问题曾经困扰 ...

  8. 利用Jmeter做接口测试

    本文作者:大道测试团队-孙云 1.在安装jmeter之前先配置好JDK,再配置jmeter环境变量. 2.启动jmeter 启动jmeter: 双击Jmeter解压路径(apache-jmeter-3 ...

  9. How to begin Python learning?

    如何开始Python语言学习? 1. 先了解它,Wiki百科:http://zh.wikipedia.org/zh-cn/Python 2. Python, Ruby等语言来自开源社区,社区的学法是V ...

  10. Windows C盘格式化或者同平台迁移oracle数据库

    我们知道如果是Linux 同平台迁移oracle数据库.只要是安全关闭了数据库,在新机器上创建用户组,配置了环境变量,将数据库安装目录拷贝到对应的目录就好用了. 一直在寻求Windows平台上这类的解 ...