在app开发过程中,经常需要显示media文件的meta data信息,我们如何获取这些信息呢?
MediaStore
首先想到的就是MediaStore类了,它为我们提供的丰富的属性,我们只要通过sqlite操作,就能获取这些属性提供的值啦。
public static final String[] ItemImageProjection = new String[] {
MediaStore.Images.ImageColumns.DISPLAY_NAME,
MediaStore.Images.ImageColumns.DATA,
MediaStore.Images.ImageColumns.SIZE,
MediaStore.Images.ImageColumns._ID,
MediaStore.Images.ImageColumns.MIME_TYPE
};
public static final String[] ItemVideoProjection = new String[] {
MediaStore.Video.VideoColumns.DISPLAY_NAME,
MediaStore.Video.VideoColumns.DATA,
MediaStore.Video.VideoColumns.SIZE,
MediaStore.Video.VideoColumns._ID,
MediaStore.Video.VideoColumns.MIME_TYPE
};
public static final String[] ItemAudioProjection = new String[] {
MediaStore.Audio.AudioColumns.DISPLAY_NAME,
MediaStore.Audio.AudioColumns.DATA,
MediaStore.Audio.AudioColumns.SIZE,
MediaStore.Audio.AudioColumns._ID,
MediaStore.Audio.AudioColumns.MIME_TYPE
};
不知道如何查询系统数据库数据?查查ContentResolver怎么使用吧
不过有时候,这些属性还不能满足我们的需求,这时候就需要一些其他类来帮助了。那么,来看看其他类吧
MediaMetadataRetriever 类
SDK官方说明:MediaMetadataRetriever class provides a unified interface for retrieving frame and meta data from an input media file.
简单来说,我们可以重MediaMetadataRetriever类中获取meta data信息,关键是这些meta data信息是MediaStore类提供不了的,看看这个类能为我们提供哪些属性,写一个小demon测试下