小弟最近做一个音乐播放器时碰到一个类:MediaMetadataRetriever,不知道这个类具体是做什么用的,好像是可以得到多媒体文件的艺术家,标题等信息,但是这些信息可以通过contentProvider得到,请问两者区别是什么?

解决方案 »

  1.   

    MediaMetadataRetriever是所有多媒体信息相关的,这只是音乐,还有图片和视频
    有些信息是数据库没有的,比如视频缩略图,列出一些表示信息的字段:
        public static final int METADATA_KEY_CD_TRACK_NUMBER = 0;
        public static final int METADATA_KEY_ALBUM           = 1;
        public static final int METADATA_KEY_ARTIST          = 2;
        public static final int METADATA_KEY_AUTHOR          = 3;
        public static final int METADATA_KEY_COMPOSER        = 4;
        public static final int METADATA_KEY_DATE            = 5;
        public static final int METADATA_KEY_GENRE           = 6;
        public static final int METADATA_KEY_TITLE           = 7;
        public static final int METADATA_KEY_YEAR            = 8;
        public static final int METADATA_KEY_DURATION        = 9;
        public static final int METADATA_KEY_NUM_TRACKS      = 10;
        public static final int METADATA_KEY_IS_DRM_CRIPPLED = 11;
        public static final int METADATA_KEY_CODEC           = 12;
        public static final int METADATA_KEY_RATING          = 13;
        public static final int METADATA_KEY_COMMENT         = 14;
        public static final int METADATA_KEY_COPYRIGHT       = 15;
        public static final int METADATA_KEY_BIT_RATE        = 16;
        public static final int METADATA_KEY_FRAME_RATE      = 17;
        public static final int METADATA_KEY_VIDEO_FORMAT    = 18;
        public static final int METADATA_KEY_VIDEO_HEIGHT    = 19;
        public static final int METADATA_KEY_VIDEO_WIDTH     = 20;
      

  2.   

    你看文档上的描述:
    MediaMetadataRetriever类提供了统一的接口用于从多媒体文件提取帧和元数据
      

  3.   

    MediaMetadataRetriever是从媒体文件里得到这些metadata,这些数据写到db里后,再用contentprovider取