前言
记录一下,一般获取视频、音频等媒体文件的元数据信息是使用MediaMetadataRetriever这个类。
正文
直接上代码。
MediaMetadataRetriever mediaMetadataRetriever = new MediaMetadataRetriever(); //设置源 mediaMetadataRetriever.setDataSource(MusicActivity.this, uri); //或 mediaMetadataRetriever.setDataSource(path);
解析数据,这里单独介绍音频和视频。图片也类似,就省略。
音频
//艺术家 String artist = mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST); //歌名 String title = mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE); //专辑名 String album = mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM); //专辑图 byte[] cover = mediaMetadataRetriever.getEmbeddedPicture(); Bitmap bitmap = null == cover ? null : BitmapFactory.decodeByteArray(cover, 0, cover.length);
视频
//视频名,无法获取到null String title = mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE); //视频宽 int width = Integer.parseInt(mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH)); //视频高 int height = Integer.parseInt(mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT)); //视频 mimetype String mimetype = mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_MIMETYPE); //缩略图,部分视频无法获取到,下面2中方式都可以,第二个可以指定时间 Bitmap bitmap1 = mediaMetadataRetriever.getFrameAtTime(); Bitmap bitmap2 = mediaMetadataRetriever.getFrameAtTime(0, MediaMetadataRetriever.OPTION_NEXT_SYNC);
参考文章
历史上的今天
暂无评论...
随机推荐
林清玄:路上的情书
我捡过一封诀别的情书。情书上有这样看来普通的句子:“当初是我选择了你,心里明知与你不会长久,还是执着的选择了你。”“这些日子以来,谢谢你陪我走过这一段路。”“你是一个很好的人,你一定会认识比我好上千倍的女孩。”“由衷地希望在没有我的日子,你依然过得好。”会捡到这封情书是很偶然的。有一天我在...
周国平:事故
火车轮子下一团污秽 是男人还是女人叫什么名字这有什么重要 为什么开来的是警察而不是一大块肥皂 假如一个人消失了不要去寻找人应该像声音一样死去只留下寂静
设计模式:装饰模式或包装模式
什么是设计模式装饰模式又名包装模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。有透明和半透明两种,大部分都是半透明的,半透明的装饰模式是介于装饰模式和适配器模式之间的。装饰模式的核心:功能扩展。透明和半透明的区别:透明的装饰模式,要求具体构件角色、装饰角色的接...
低版本API废弃的警告Dialog
前言Android高版本上安装一些旧的APP,会存在会弹出对话框,内容:“此应用专为旧版Android打造,因此可能无法正常运行。请尝试检查更新或与开发者联系”。这样不是很友好,客户要求去掉。正文原因本质是Android高版本对启动应用的支持SDK的检测。下面是网上分析的,摘抄于此。...
adb shell settings 参数命令集合
前言Android中配置有很多参数,一般可以通过Log日志打印,但是想偷懒因此这里介绍部分参数可以通过命令直接查看配置的值。下面就介绍一些使用adb shell settings 等命令获取Android中配置的值。PS:注意红色字体,不同的settings参数获取的方式不同小结用了ge...
bat脚本命令简介
批处理,也称为批处理脚本,英文译为BATCH,批处理文件后缀BAT就取的前三个字母。它的构成没有固定格式,只要遵守以下这条就ok了:每一行可视为一个命令,每个命令里可以含多条子命令,从第一行开始执行,直到最后一行结束,它运行的平台是DOS。批处理有一个很鲜明的特点:使用方便、灵活,功能强大,自动化程...