android获取视频缩略图
㈠ 如何在低版本的Android SDK中生成缩略图
从Android2.2开始系统新增了一个缩略图ThumbnailUtils类,位于framework的android.media.ThumbnailUtils位置,可以帮助我们从mediaprovider中获取系统中的视频或图片文件的缩略图,该类提供了三种静态方法可以直接调用获取。
1.
static
Bitmap
createVideoThumbnail(String
filePath,
int
kind)
//获取视频文件的缩略图,第一个参数为视频文件的位置,比如/sdcard/android123.3gp,而第二个参数可以为MINI_KIND或MICRO_KIND最终和分辨率有关
2.
static
Bitmap
extractThumbnail(Bitmap
source,
int
width,
int
height,
int
options)
//直接对Bitmap进行缩略操作,最后一个参数定义为OPTIONS_RECYCLE_INPUT,来回收资源
3.
static
Bitmap
extractThumbnail(Bitmap
source,
int
width,
int
height)
//
这个和上面的方法一样,无options选项
ThumbnailUtils类是API
Level从8或更高才开始支持的。
Android缩略图类源代码
Android
2.2开始新增的缩略图类ThumbnailUtils的主要方法是静态的,对于Android
2.2或API
Level8以下的工程可以直接使用,本类相对于我们常规的缩略图类考虑更周全,除了尺寸比例优化外,针对OOM的内存管理方面有更周全的处理方式.
㈡ 手机如何让视频显示缩略图
手机还可以,点开设置相册,里面的设置,然后点开列表,有大图标,小图标就进行可以设置不管是XP系统的,还是win7或更高的系统,在设置上基本上都是差不多的。下面以win7的为例讲解一下。
右键计算机,选择属性。
选择高级系统设置。
选择高级选项卡里面的性能—设置。
在视觉效果中选择自定义下面的:显示缩略图,而不是显示图标,然后点击确定。
然后再点击确定。设置完成后,图片已经以缩略图的形式显示出来了。
㈢ android4.4 中如何获取最近应用的缩略图
最近有项需求是获取应用的缩略,用于在动画时显示。因此就对此块知识简要了解了一下。
在android中获取视频文件的缩略图有三种方法:
1.从媒体库中查询
新视频增加后需要SDCard重新扫描才能给新增加的文件添加缩略图,灵活性差,而且不是很稳定,适合简单应用
2. android 2.2以后使用ThumbnailUtils类获取
实现简单,但2.2以前的版本不支持
3.调用jni文件,实现MediaMetadataRetriever类
实现复杂,但比较灵活,推荐使用
那么Android 中如何获取最近应用的缩略图,这块也有现成的函数,不过都被 @hide 掉了,所以需要利用java reflect 反射才能使用
核心代码如下:
package com.example.testondraw;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import android.app.ActivityManager;
import android.graphics.Bitmap;
import android.util.Log;
/**
* 调用隐藏方法的助手类
*/public class HideExploder {
static final String TAG = "HideExploder";
private final static Object refLock = new Object();
private static Method getTaskThumbnails = null;
private static Field taskThumbnailsBitmap = null;
@SuppressWarnings("rawtypes")
public static void listAllObject(String classFullName) {
try {
Log.i(TAG, "listAllObject classFullName: " + classFullName);
Class<?> clazz = Class.forName(classFullName);
// 反射属性字段
Field[] fields = clazz.getDeclaredFields();
// 反射方法字段
Method[] methods = clazz.getDeclaredMethods();
// 反射构造器
Constructor[] constuctors = clazz.getDeclaredConstructors();
Log.i(TAG, "FIELD========");
for (Field f : fields) {
Log.i(TAG, "TYPE: " + f.getType() + " NAME: " + f.getName());
}
Log.i(TAG, "METHOD========");
for (Method m : methods) {
Log.i(TAG, "METHOD NAME: " + m.getName());
}
Log.i(TAG, "CONSTUCTOR========");
for (Constructor c : constuctors) {
Log.i(TAG, "NAME:" + c.getName());
Class[] clss = c.getParameterTypes();
Object o = null;
// 产生实例
try {
if (clss.length == 0)
o = c.newInstance();
else if (clss.length > 0) {
// TODO
}
Log.i(TAG, "object: " + o);
} catch (Exception e) {
e.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static Bitmap getTaskThumbnailsBitmap(ActivityManager am, int id) {
synchronized (refLock) {
try {
if (getTaskThumbnails == null) {
getTaskThumbnails = am.getClass().getDeclaredMethod(
"getTaskThumbnails", int.class);
}
if (getTaskThumbnails != null) {
Object thumbnails = getTaskThumbnails.invoke(am,
Integer.valueOf(id));
if (thumbnails != null) {
if (taskThumbnailsBitmap == null)
taskThumbnailsBitmap = thumbnails.getClass()
.getField("mainThumbnail");
if (taskThumbnailsBitmap != null) {
return (Bitmap) taskThumbnailsBitmap
.get(thumbnails);
}
}
}
} catch (Exception e) {
Log.w(TAG, "getTaskThumbnailsBitmap error:" + e);
e.printStackTrace();
}
}
return null;
}
}
㈣ Android 中用ThumbnailUtils 获取手机视频文件缩略图出错
旋转90°就好了:
Bitmapbitmap=BitmapFactory.decodeFile(mCurrentPhotoPath,bmOptions);
Matrixmtx=newMatrix();
mtx.postRotate(90);
//RotatingBitmap
BitmaprotatedBMP=Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),mtx,true);
㈤ android怎样获取视频缩略图
需要快速提取图片和视频缩略图可以直接访问 android.provider.MediaStore.Images.Thumbnails 和android.provider.MediaStore.Video.Thumbnails这两个数据库,即可查询出来缩略图 。 如何判断文件呢? 可以通过Cursor遍历数据库,对比INTERNAL_CONTENT_URI字段的值,这是一个Uri,这里保存着Android手机SD卡上的多媒体文件完整路径。 Uri originalUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; //若为视频则为MediaStore.Video.Media.EXTERNAL_CONTENT_URI; ContentResolver cr = this.getContentResolver(); Cursor cursor = cr.query(originalUri, null, null, null, null); if (cursor == null) { return; } for (cursor.moveToFirst();!cursor.isAfterLast(); cursor.moveToNext()) { long thumbNailsId = cursor.getLong(cursor .getColumnIndex("_ID")); Bitmap bitmap = MediaStore.Images.Thumbnails.getThumbnail(cr, thumbNailsId, Video.Thumbnails.MICRO_KIND, null); //若为视频则为 // Bitmap bitmap = MediaStore.Video.Thumbnails.getThumbnail(cr, // thumbNailsId, Video.Thumbnails.MICRO_KIND, null); return bitmap; }
㈥ 安卓平台生成视频缩略图的几种方法
使用MediaMetadataRetriever 的getFrameAtTime()方法, 如下:
getFrameAtTime方法有几个重载形式, 其中type参数有如下几种取值:
可以根据需要选择是否选取关键帧. 以及优先取前面的还是后面的.
还提供了指定尺寸的重载方法.
这种方法效率最高, 速度最快!
需要注意的是, 这个办法对很多格式不规整的视频文件不能很好的支持, 有些文件只有一个关键帧, 或者关键帧很少. 导致很难获取到正确的截图.
使用MediaExtractor,MediaCodec和opengl抽取mp4视频文件的帧缩略图.
具体实现可以参考 https://www.jianshu.com/p/567d7ce47f52
这个方法速度中等, 但是对视频文件的格式支持兼容性较好, 只要能播放, 基本都能搞定.
将视频渲染到TextureView上, 然后通过将TextureView内容转换为bitmap来获得指定时间点的截图.
具体实现参考: https://www.jianshu.com/p/0f6578362e58
这个方法效率最低, 必须要把视频在TextureView上播放出来, 才能截图. 虽然可以通过调节播放倍速来加快截图效率, 但是这种方式仍然是最慢的.
通过ffmpeg实现, 这个能做, 但是没用过, 不多说了.
㈦ 【Android音视频】MediaMetadataRetriever使用
MediaMetadataRetriever是Android原生提供的获取音视频文件信息的一个类,我们可以通过这个类的相关方法获取一些基本信息,如视频时长、宽高、帧率、方向、某一帧的图片等。
我们可以通过MediaMetadataRetriever的extractMetadata(int keyCode)的方法获取一些视频的基本信息,以下列出一些常用的:
可以通过getFrameAtTime(long timeUs)获取某一时刻附近的帧图片;API>=28,可以准确获取帧图片,相关方法getFrameAtIndex(...);获取帧图可以应用在 视频封面图 、 视频裁剪的缩略图 等。
MediaMetadataRetriever还是比较常用的,以上只是简略的列出了MediaMetadataRetriever的一些用法,具体可自行查阅源文件。
㈧ 如何创建从Android视频文件路径视频缩略图
如何创建从Android视频文件路径视频缩略图
这个问题本身不难,你贴一堆代码这么乱怎么看?
要实现这样的功能呢,建议你自定义一个adapter继承自BaseAdapter,然后在getView方法里,
加载一个item布局,这个item布局可以包含imageView,自己写一个就好。
自定义的adapter可以设置数据源,构造方法中上一个list map数据源,
获取到数据源之后传进来,根据position设置好对应数据就好了。
win7下如何视频文件缩略图
关于这个问题,右击空白处选择那个大图标或者超大图标有些格式的视频文件就会变成缩略图了。有些格式不行像MKV
视频缩略图哪个文件夹
很简单,不关属性的问题,你打开那个不显示缩略图的文件夹,然后看上面有
文件 编辑 查看 收藏 工具 帮主 这些也就是上面的工具栏。
点查看--然后选择---缩略图 就可以了。 同时也提供别的显示方式,比如详细列表,列表,,图标。等你可以看一下。
不管是图片还是视频,都支持显示缩略图的,那么就1个原因,是因为你的视频格式不一样,不支持显示缩略图,即便有些视频文件你查看属性,同样是MPG或者别的格式也有些是显示不出来缩略图的。
android怎样获取视频缩略图
需要快速提取图片和视频缩略图可以直接访问 android.provider.MediaStore.Images.Thumbnails 和android.provider.MediaStore.Video.Thumbnails这两个数据库,即可查询出来缩略图 。 如何判断文件呢? 可以通过Cursor遍历数据库,对比INTERNAL_CONTENT_URI字段的值,这是一个Uri,这里保存着Android手机SD卡上的多媒体文件完整路径。 Uri originalUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; 若为视频则为MediaStore.Video.Media.EXTERNAL_CONTENT_URI; ContentResolver cr = this.getContentResolver(); Cursor cursor = cr.query(originalUri, null, null, null, null); if (cursor == null) { return; } for (cursor.moveToFirst();!cursor.isAfterLast(); cursor.moveToNext()) { long thumbNailsId = cursor.getLong(cursor .getColumnIndex("_ID")); Bitmap bitmap = MediaStore.Images.Thumbnails.getThumbnail(cr, thumbNailsId, Video.Thumbnails.MICRO_KIND, null); 若为视频则为 Bitmap bitmap = MediaStore.Video.Thumbnails.getThumbnail(cr, thumbNailsId, Video.Thumbnails.MICRO_KIND, null); return bitmap; }
dedecms获取视频缩略图
她轻捷、长发,而眼里
野性等等的光芒闪闪。
我给她编织过花冠、
芬芳的腰带和手镯,
她柔声地轻轻太息,
仿佛是真心爱我。
我带她骑在骏马上.
她把脸儿侧对着我.
android 怎么在android 2.1中获取视频缩略图
使用surfaceview播放视频,播放到某个时间时将该帧图像抓下来转bmp后通过imageview显示出来
win10的视频文件如何显示缩略图?
方法一:在"组织"的下拉菜单中找到"文件夹和搜索选项",在"查看"选项中找到"始终显示图标,从不显示缩略图"选项前的勾去掉,然后点击确定。
方法二:
1、右键我的电脑点击“属性”,后在左侧点击“高级系统设置”
2、在性能处点击“设置”
3、如下图勾选,“应用”即可
如何在Win7图片文件夹显示视频缩略图
你安装个win7codecs
wordpress如何读取文章中的视频缩略图
第一步:在主题模板的function.php里添加下面的函数,代码如下:
截取内容中第一张图片函数
function catch_that_image() {
global $post, $posts;
ob_start();
ob_end_clean();
preg_match('/<imgs[^<>]*?src=['"]([^'"<>]+?)['"][^<>]*?>/i', $post->post_content, $matche);
if($matche[1])
return $matche[1];
否则取默认图片
return 'default.gif'
}
第二步:在wordpress需要调用缩略图的地方直接用这个函数调用,如下面例子,代码如下:
<img src=<?php echo catch_that_image(); ?> alt="<?php the_title(); ?>" title="<?php the_title(); ?>" width=200px height=200px />
视频缩略图怎么查看
MediaPreviewSetup 赶紧下,然后打开后全部格式选中点下面的应用就ok啦。
楼下那些人别听他们的,他们不懂,这个软件是专门用于各类新视频格式的缩略图插件,一装就好了,相当于一个补丁
㈨ Android中如何取得指定视频的缩略图
sd卡的可以轻松的取得 android.provider.MediaStore.Images.Thumbnails 和android.provider.MediaStore.Video.Thumbnails这两个数据库,即可查询出来缩略图 但是你说的网络的视频,这个得自己视频解码了,读取某些帧信息啊。。。