Android开发——媒体库MediaStore

Android系统在启动时会扫描系统文件,并将系统支持的视频、音频扫描到数据库MediaStore中。

  • 类MediaStore.Video
    常量:
    DEFAULT_SORT_ORDER:String,表的默认排列顺序
    构造函数:
    MediaStore.Video()
    方法:
    Cursor query(ContentResolver cr, Uri uri, String[] projection)

  • 类MediaStore.Video.Media(extends Object implements MediaStore.Video.VideoColumns)
    这个类应该是一个表。
    常量:
    String CONTENT_TYPE:表的MIME类型
    String DEFAULT_SORT_ORDER:表的默认排列顺序
    属性:
    public static final Uri EXTERNAL_CONTENT_URI:外部存储卡的content://类型的URI
    public static final Uri INTERNAL_CONTENT_URI:内存卡content://类型的URI
    继承而来的属性(列名):
    String _ID:一行的标识
    String DATA:文件的路径名
    String DISPLAY_NAME:文件的显示名
    String TITLE:内容的标题
    String DURATION:视频文件的时长,ms
    方法:
    static Uri getContentUri(String volumeName):得到指定卡上的视频媒体表的content://类型的URI
Uri uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
String[] mediaColumns = { MediaStore.Video.Media._ID,
        MediaStore.Video.Media.DATA, MediaStore.Video.Media.TITLE,
        MediaStore.Video.Media.MIME_TYPE,
        MediaStore.Video.Media.DISPLAY_NAME };

Cursor c = MainActivity.this.getContentResolver().query(uri, mediaColumns, null, null, MediaStore.Video.Media.DEFAULT_SORT_ORDER);

返回的Cursor对象和读取SQLite数据库中的表一样,包含多行多列。

音频只需要把MediaStore.Video.Media.EXTERNAL_CONTENT_URI修改为MediaStore.Audio.Media.EXTERNAL_CONTENT_URIMediaStore.Video.Media.DEFAULT_SORT_ORDER修改为MediaStore.Audio.Media.DEFAULT_SORT_ORDER


  • 类MediaStore.Video.Thumbnails
    extends Object implements BaseColumns,允许开发者查询并得到两种缩略图:MINI_KIND: 512 * 384缩略图,MICRO_KIND: 96 * 96缩略图。
    常量:
    String DATA:缩略图的路径
    String DEFAULT_SORT_ORDER:表的默认排序方式
    String KIND:缩略图的类型
    int MICRO_KIND
    int MINI_KIND
    String VIDEO_ID:缩略图的原始图片
    继承的常量:
    public static final Uri EXTERNAL_CONTENT_URI
    public static final Uri INTERNAL_CONTENT_URI
    方法:
    cancelThumbnailRequest(ContentResolver cr, long origId):取消缩略图请求
    cancelThumbnailRequest(ContentResolver cr, long origId, long groupId)
    getContentUri(String volumeName)
    getThumbnail(ContentResolver cr, long origId, long groupId, int kind, BitmapFactory.Options options):检查制定图片的缩略图是否已经创建
    getThumbnail(ContentResolver cr, long origId, int kind, BitmapFactory.Options options)

// MediaStore.Video.Thumbnails.DATA:视频缩略图的文件路径
String[] thumbColumns = { MediaStore.Video.Thumbnails.DATA,
            MediaStore.Video.Thumbnails.VIDEO_ID };
int id = cursor.getInt(cursor
                   .getColumnIndex(MediaStore.Video.Media._ID));    
Cursor thumbCursor = MainActivity.this.getContentResolver().query(
                    MediaStore.Video.Thumbnails.EXTERNAL_CONTENT_URI,
                    thumbColumns, MediaStore.Video.Thumbnails.VIDEO_ID
                            + "=" + id, null, null);

  • 接口MediaStore.Video.VideoColumns
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值