• Android多媒体框架对音乐播放器的支持


    下面介绍一下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类。
     
     
  • 相关阅读:
    01Go语言的特性和优势
    03Go的执行原理及Go的常用命令
    05Go语言的程序流程结构
    00golong语言环境的安装与配置
    04变量、常量、运算符
    02GoLang Hello,World!
    java常用类
    Overview of Database Link数据库链接概述
    数据类型
    数据块概述
  • 原文地址:https://www.cnblogs.com/sage-blog/p/3885791.html
Copyright © 2020-2023  润新知