MediaMetadataRetriever类 取得媒体文件信息
MediaMetadataRetriever类提供了一个统一的接口用于从一个输入媒体文件中取得帧和元数据
//从一个音乐中取得部分媒体信息
MediaMetadataRetriever mmr=new MediaMetadataRetriever();
String str=getExternalStorageDirectory()+"music/hetangyuese.mp3";
try{
mmr.setDataSource(str);
String title=mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE); //荷塘月色
String album=mr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM); //我从草原来
String mime = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_MIMETYPE); //audio/mpeg
String artist = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST); //凤凰传奇
String duration = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION); //9172
String bitrate = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_BITRATE); //128000
// 从api level 14才有,即从ICS4.0才有此功能
String date = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DATE); //null
//如果是视频文件,还可以通过getFrameAtTime()方法取得制定time位置的Bitmap,即可以实现抓图(包括缩略图)功能。
}catch(){
}
//2.2之后获得缩略图就简单了 因为用了ThumbnailUtils类
Bitmap b= ThumbnailUtils.createVideoThumbnail(path,Video.Thumbnails.MICRO_KING);
ImageView iv=new ImageView(this);
//获取视频的缩略图
public static Bitmap craeateVideoThumbnailBitmap(String filePath,FileDescriptor fd,int targetWidth){
Bitmap bitmap=null;
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
try {
if (filePath != null) {
retriever.setDataSource(filePath);
} else {
retriever.setDataSource(fd);
}
bitmap = retriever.getFrameAtTime(-1); //获取的是图片 要获取视频的话,直接设置相应的帧数
} catch (IllegalArgumentException ex) {
// Assume this is a corrupt video file
} catch (RuntimeException ex) {
// Assume this is a corrupt video file.
} finally {
try {
retriever.release(); //释放
} catch (RuntimeException ex) {
// Ignore failures while cleaning up.
}
}
if (bitmap == null)
return null;
int width = bitmap.getWidth();
int height = bitmap.getHeight();
if (width > targetWidth) {
float scale = (float) targetWidth / width;
int w = Math.round(scale * width);
int h = Math.round(scale * height);
bitmap = Bitmap.createScaledBitmap(bitmap, w, h, true);
}
return bitmap;
}
本文介绍了如何使用MediaMetadataRetriever类从音频文件中提取元数据,如标题、专辑、艺术家等信息,并展示了如何从视频文件中获取指定时间点的缩略图。
648

被折叠的 条评论
为什么被折叠?



