- 浏览: 618152 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (164)
- android(基础) (81)
- android(进阶) (2)
- android(底层) (7)
- android(面试) (0)
- android(多媒体) (1)
- android(组件学习) (4)
- android(网络相关) (0)
- android(动画) (1)
- android(数据库) (2)
- android(UI样式) (3)
- android(xml) (0)
- android(调试) (14)
- android(环境搭建) (7)
- android(api) (1)
- C++ (1)
- C (0)
- JavaSE (2)
- Objective-c (1)
- JavaScript (0)
- 设计模式 (0)
- eclipse (3)
- javaee (4)
- 其它 (5)
- linux (18)
- Oracle (1)
- mysql (1)
- 嵌入式linux (1)
- 版本控制工具 (3)
- web前端 (1)
- python (1)
最新评论
-
chungehenyy:
android颜色对应的xml配置值,颜色表 -
u011467537:
...
android中用Spannable在TextView中设置超链接、颜色、字体 -
SurpriseLee:
不能更赞了!
android颜色对应的xml配置值,颜色表 -
u012094586:
这个代码是不是不全呀,能不能提供完整版的给予参考呢?xiexi ...
Android VideoView如何播放RTSP的流 -
luechenying:
顶上天!!!!!!!!!!!!!!!!!!
android颜色对应的xml配置值,颜色表
转贴自:http://www.android123.com.cn/androidkaifa/665.html
【0】大家都知道Android从1.5开始刚插入SD卡时系统会调用MediaScanner服务进行后台扫描,索引新的歌曲、图片和视频等信息,如果我们需要快速提取图片和视频缩略图可以直接访问 android.provider.MediaStore.Images.Thumbnails 和android.provider.MediaStore.Video.Thumbnails这两个数据库,即可查询出来缩略图
如何判断文件呢? 可以通过Cursor遍历数据库,对比INTERNAL_CONTENT_URI字段的值,这是一个Uri我们可以转成String,这里保存着Android手机SD卡上的多媒体文件完整路径,
有关具体的缩略图可以通过getThumbnail(ContentResolver cr, long origId, int kind, BitmapFactory.Options options) 或getThumbnail(ContentResolver cr, long origId, long groupId, int kind, BitmapFactory.Options options) 方法获取,这两种方法返回Bitmap类型,而缩略图的分辨率可以从HEIGHT和WIDTH两个字段提取,在Android上缩略图分为两种,通过读取KIND字段来获得,分别为MICRO_KIND和MINI_KIND 分别为微型和迷你两种缩略模式,前者的分辨率更低。这样我们平时获取文件系统的某个图片预览时,可以直接调用系统缩略图,而不用自己重新计算。
最后Android123提示大家,缩略图保存在SD卡的DCIM目录,里面的.thumbnails是图片的,而.video_thumbnails是视频的,这两个文件夹为隐藏属性,一般的文件管理器都可以看到。
【1】从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选项
最后Android开发网再次提醒大家,ThumbnailUtils类是API Level从8或更高才开始支持的。
以下转自:http://blog.csdn.net/jing_huanhuan/article/details/6136075
获取视频文件:
如果获取路径,需要讲projection修改为String[] projection = new String[]{MediaStore.Video.Media.DATA};
获取的语句也需要修改为:cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.DATA));
获取音频文件:
以下转自:http://blog.sina.com.cn/s/blog_5be1061c0100ctco.html
首先给大家讲android的多媒体数据库。MediaStore这个类是android系统提供的一个多媒体数据库,android中多媒体信息都可以从这里提取。这个MediaStore包括了多媒体数据库的所有信息,包括音频
,视频和图像,android把所有的多媒体数据库接口进行了封装,所有的数据库不用自己进行创建,直接调用利用ContentResolver去掉用那些封装好的接口就可以进行数据库的操作了。今天我就介绍一些
这些接口的用法。
首先,要得到一个ContentResolver实例,ContentResolver可以这样获取,利用一个Activity或者Service的Context即可。如下所示:
ContentResolver mResolver = ctx.getContentResolver();
上面的那个ctx的就是一个context,Activity.this就是那个Context,这个Context就相当于一个上下文环境。得到这个Context后就可以调用getContentResolver接口获取ContentResolver实例了。
ContentResolver实例获得后,就可以进行各种查询,下面我就以音频数据库为例讲解增删改查的方法,视频和图像和音频非常类似。
在讲解各种查询之前,我给大家介绍下怎么看android都提供了哪些多媒体表。在adb shell中,找到/data/data/com.android.providers.media/databases/下,然后找到SD卡的数据库文件(一般是
一个.db文件),然后输入命令sqlite3加上这个数据库的名字就可以查询android的多媒体数据库了。.table命令可以列出所有多媒体数据库的表,.scheme加上表名可以查询表中的所有列名。这里可以利
用SQL语句来查看你想要的数据,记得最后一定要记住每条语句后面都加上分号。下面开始讲述怎么在这些表上进行增删改查。
查询,代码如下所示:
Cursor cursor = resolver.query(_uri, prjs, selections, selectArgs, order);
ContentResolver的query方法接受几个参数,参数意义如下:
Uri:这个Uri代表要查询的数据库名称加上表的名称。这个Uri一般都直接从MediaStore里取得,例如我要取所有歌的信息,就必须利用MediaStore.Audio.Media. EXTERNAL _CONTENT_URI这个Uri。
专辑信息要利用MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI这个Uri来查询,其他查询也都类似。
Prjs:这个参数代表要从表中选择的列,用一个String数组来表示。
Selections:相当于SQL语句中的where子句,就是代表你的查询条件。
selectArgs:这个参数是说你的Selections里有?这个符号是,这里可以以实际值代替这个问号。如果Selections这个没有?的话,那么这个String数组可以为null。
Order:说明查询结果按什么来排序。
上面就是各个参数的意义,它返回的查询结果一个Cursor,这个Cursor就相当于数据库查询的中Result,用法和它差不多。
-------------------------------------------------------------------------------------------------------------------
增加,代码如下所以:
这个insert传递的参数只有两个,一个是Uri(同查询那个Uri),另一个是ContentValues。这个ContentValuses对应于数据库的一行数据,只要用put方法把每个列的设置好之后,直接利用insert方
法去插入就好了。
更新,代码如下:
上面update方法和查询还有增加里的参数都很类似,这里就不再重复叙述了,大家也可直接参考google的文档,那里也写的很清楚。
删除,代码如下:
delete和更新的方法很类似,大家对照更新的方法看下马上就会明白,今天就写到这里了最近比较忙,打算一周发一篇心得体会吧,希望大家也把自己的开发心得写出来多多交流。
【0】大家都知道Android从1.5开始刚插入SD卡时系统会调用MediaScanner服务进行后台扫描,索引新的歌曲、图片和视频等信息,如果我们需要快速提取图片和视频缩略图可以直接访问 android.provider.MediaStore.Images.Thumbnails 和android.provider.MediaStore.Video.Thumbnails这两个数据库,即可查询出来缩略图
如何判断文件呢? 可以通过Cursor遍历数据库,对比INTERNAL_CONTENT_URI字段的值,这是一个Uri我们可以转成String,这里保存着Android手机SD卡上的多媒体文件完整路径,
有关具体的缩略图可以通过getThumbnail(ContentResolver cr, long origId, int kind, BitmapFactory.Options options) 或getThumbnail(ContentResolver cr, long origId, long groupId, int kind, BitmapFactory.Options options) 方法获取,这两种方法返回Bitmap类型,而缩略图的分辨率可以从HEIGHT和WIDTH两个字段提取,在Android上缩略图分为两种,通过读取KIND字段来获得,分别为MICRO_KIND和MINI_KIND 分别为微型和迷你两种缩略模式,前者的分辨率更低。这样我们平时获取文件系统的某个图片预览时,可以直接调用系统缩略图,而不用自己重新计算。
最后Android123提示大家,缩略图保存在SD卡的DCIM目录,里面的.thumbnails是图片的,而.video_thumbnails是视频的,这两个文件夹为隐藏属性,一般的文件管理器都可以看到。
【1】从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选项
最后Android开发网再次提醒大家,ThumbnailUtils类是API Level从8或更高才开始支持的。
以下转自:http://blog.csdn.net/jing_huanhuan/article/details/6136075
获取视频文件:
ContentResolver contentResolver = getContentResolver(); String[] projection = new String[] { MediaStore.Video.Media.TITLE }; Cursor cursor = contentResolver.query( MediaStore.Video.Media.EXTERNAL_CONTENT_URI, projection, null, null, MediaStore.Video.Media.DEFAULT_SORT_ORDER); cursor.moveToFirst(); int fileNum = cursor.getCount(); for (int counter = 0; counter < fileNum; counter++) { Log.w("tag", "---file is:" + cursor.getString(cursor .getColumnIndex(MediaStore.Video.Media.TITLE))); cursor.moveToNext(); } cursor.close();
如果获取路径,需要讲projection修改为String[] projection = new String[]{MediaStore.Video.Media.DATA};
获取的语句也需要修改为:cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.DATA));
获取音频文件:
Cursor cursor = getContentResolver().query( MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER); cursor.moveToFirst(); int counter = cursor.getCount(); String title = cursor.getString(cursor .getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE)); Log.w("tag", "before looping,title=" + title); for (int j = 0; j < counter; j++) { Log.w("tag", "title=" + cursor.getString(cursor .getColumnIndex(MediaStore.Audio.Media.TITLE))); cursor.moveToNext(); } cursor.close();
以下转自:http://blog.sina.com.cn/s/blog_5be1061c0100ctco.html
首先给大家讲android的多媒体数据库。MediaStore这个类是android系统提供的一个多媒体数据库,android中多媒体信息都可以从这里提取。这个MediaStore包括了多媒体数据库的所有信息,包括音频
,视频和图像,android把所有的多媒体数据库接口进行了封装,所有的数据库不用自己进行创建,直接调用利用ContentResolver去掉用那些封装好的接口就可以进行数据库的操作了。今天我就介绍一些
这些接口的用法。
首先,要得到一个ContentResolver实例,ContentResolver可以这样获取,利用一个Activity或者Service的Context即可。如下所示:
ContentResolver mResolver = ctx.getContentResolver();
上面的那个ctx的就是一个context,Activity.this就是那个Context,这个Context就相当于一个上下文环境。得到这个Context后就可以调用getContentResolver接口获取ContentResolver实例了。
ContentResolver实例获得后,就可以进行各种查询,下面我就以音频数据库为例讲解增删改查的方法,视频和图像和音频非常类似。
在讲解各种查询之前,我给大家介绍下怎么看android都提供了哪些多媒体表。在adb shell中,找到/data/data/com.android.providers.media/databases/下,然后找到SD卡的数据库文件(一般是
一个.db文件),然后输入命令sqlite3加上这个数据库的名字就可以查询android的多媒体数据库了。.table命令可以列出所有多媒体数据库的表,.scheme加上表名可以查询表中的所有列名。这里可以利
用SQL语句来查看你想要的数据,记得最后一定要记住每条语句后面都加上分号。下面开始讲述怎么在这些表上进行增删改查。
查询,代码如下所示:
Cursor cursor = resolver.query(_uri, prjs, selections, selectArgs, order);
ContentResolver的query方法接受几个参数,参数意义如下:
Uri:这个Uri代表要查询的数据库名称加上表的名称。这个Uri一般都直接从MediaStore里取得,例如我要取所有歌的信息,就必须利用MediaStore.Audio.Media. EXTERNAL _CONTENT_URI这个Uri。
专辑信息要利用MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI这个Uri来查询,其他查询也都类似。
Prjs:这个参数代表要从表中选择的列,用一个String数组来表示。
Selections:相当于SQL语句中的where子句,就是代表你的查询条件。
selectArgs:这个参数是说你的Selections里有?这个符号是,这里可以以实际值代替这个问号。如果Selections这个没有?的话,那么这个String数组可以为null。
Order:说明查询结果按什么来排序。
上面就是各个参数的意义,它返回的查询结果一个Cursor,这个Cursor就相当于数据库查询的中Result,用法和它差不多。
-------------------------------------------------------------------------------------------------------------------
增加,代码如下所以:
ContentValues values = new ContentValues(); values.put(MediaStore.Audio.Playlists.Members.PLAY_ORDER,0); resolver.insert(_uri, values);
这个insert传递的参数只有两个,一个是Uri(同查询那个Uri),另一个是ContentValues。这个ContentValuses对应于数据库的一行数据,只要用put方法把每个列的设置好之后,直接利用insert方
法去插入就好了。
更新,代码如下:
ContentResolver resolver = ctx.getContentResolver(); Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; ContentValues values = new ContentValues(); values.put(MediaStore.Audio.Media.DATE_MODIFIED, sid); resolver.update(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI,values, where, selectionArgs);
上面update方法和查询还有增加里的参数都很类似,这里就不再重复叙述了,大家也可直接参考google的文档,那里也写的很清楚。
删除,代码如下:
ContentResolver resolver = ctx.getContentResolver(); resolver.delete(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI,where, selectionArgs);
delete和更新的方法很类似,大家对照更新的方法看下马上就会明白,今天就写到这里了最近比较忙,打算一周发一篇心得体会吧,希望大家也把自己的开发心得写出来多多交流。
发表评论
-
Fragment 横竖屏切换问题
2013-04-24 14:41 1787在默认情况下当发生横 ... -
Android EditText 增加自定义过滤
2012-02-19 22:20 2390在Android中,可以通过对EditText设置setFil ... -
解决android textview自动换行问题
2012-02-16 11:46 10595今天忽然发现android项目中的文字排版参差不齐的情况非常严 ... -
通过adb命令获取Android手机的IP地址
2011-12-30 19:11 4331要获取Android手机的IP地址,必须先保证你的Androi ... -
Android 图形用户界面 之 绘图(二) Paint类 主要方法介绍
2011-12-30 09:10 1421/** * Paint类介绍 * * Pa ... -
ListView底部分隔线的问题
2011-12-20 14:42 4288在工作中遇到了一个难题,就是一个listView在最下面的一个 ... -
Activity中使用AIDL让Service与Activity通信
2011-10-25 00:06 2758简易计算器,默认执行1+1的计算,点击go按钮执行计算,先看效 ... -
Android图形报表之AchartEngine(附开发包+API文档)
2011-10-22 16:49 11324统计报表: Java4Less (http://java4le ... -
android中用Spannable在TextView中设置超链接、颜色、字体
2011-10-21 23:08 50413昨晚研读 ApiDemo 源码至 com.example.an ... -
android动态设置TextView字体颜色
2011-10-21 11:50 6420最近写程序就遇到了这么个难题,在TextView 上,正常字体 ... -
layer-list和include的使用
2011-10-20 10:14 2385layer-list,include,merge使用,记录一下 ... -
自定义AlertDialog样式,根据屏幕大小来显示
2011-10-19 12:43 4552先介绍一些关于AlertDialog的基本知识: ... -
Android获取屏幕分辨率及DisplayMetrics简介
2011-10-19 08:56 2794Android 可设置为随着窗口大小调整缩放比例,但即便如此, ... -
android资源文件访问android.resource
2011-10-17 09:14 4140android.resource使用转自:http://www ... -
ImageView添加边框
2011-10-16 19:37 2070import android.content.Context; ... -
Android 实现TextView中文字链接的方式
2011-10-16 14:08 2473Android 的实现TextView中文字链接的方式有很多种 ... -
android实现TextView多行文本滚动
2011-10-16 13:38 6361Android中我们为了实现文本的滚动可以在ScrollVie ... -
ListView之setEmptyView的问题
2011-10-15 23:19 4951使用listView或者gridView时,当列表为空时,有时 ... -
去掉TabActivity底部默认白线
2011-10-15 16:38 3253经过一翻百度,google终于实现了TabActivity设置 ... -
Android SDK 源码下载,eclipse关联代码
2011-10-14 10:52 2582下面地址可以下载到SDK的源代码,非官方的: 1.5——ht ...
相关推荐
能够获取到视频的缩略图片 也能够获取图片的缩略图片 两个功能
如果我们需要快速提取图片和视频缩略图可以直接访问android.provider.MediaStore.Images.Thumbnails 和android.provider.MediaStore.Video.Thumbnails这两个数据库,即可查询出来缩略图 。
Video Thumbnails Maker(视频缩略图制作软件)是一款可以帮助你快速的制作视频文件的缩略图的免费软件,Video Thumbnails Maker可用于家庭视频编目和网络视频共享的支持,程序虽然是英文的,但是非常容易使用,无需做...
视频元数据和缩略图 便捷方法(或视频对象),用于获取HTML5视频Blob的元数据和缩略图。 English | 环境支援 微软Edge 谷歌浏览器 Safari浏览器(不完美) 需要等待视频播放完毕 不能使用所有参数 Firfox(不...
一个 Flutter 插件,用于从本地存储上的视频生成缩略图。 兼容性 仅限安卓操作系统 用法 依赖它 在 pubspec.yaml 文件中添加thumbnails作为依赖项。 thumbnails : ^1.0.1 更新 Android 权限 将这些行添加到 ...
【注意】:这里的分类缩略图是指将某个分类的图片集中放在一起显示,如果要在分类页实现类似首页缩略图的效果,请仍然使用thumbnails_anywhere_for_homepage的代码。 6.带参数的调用方式: 另外,插件提供了带参数...
Multiple Post Thumbnails 是一个面向 WordPress 开发者的一个插件,它定义了一套在后台增加多个缩略图的机制,以及在前端调用新增缩略图的方法,并且它定义的后台空间支持最新的 WordPress 3.5 图片上传方式,使用...
jQuery Sweet Thumbnails 小圆点焦点图特效代码,带缩略图功能,鼠标放在小圆点上,即可显示出缩略图,大图片边框自动适应图片大小,图片在切换的一瞬间,还有多种切换过渡效果,比如收缩、滚动、张开等效果,几乎不...
git pull --recurse-submodulesgit submodule update --remote --recursive或通过使用将维护浅表克隆(depth = 1)和检出母版的脚本: sh update_modules.sh用法缩略图已安装到RetroArch config的thumbnails目录中...
缩略图浏览(Xentient Thumbnails) 让图片文件的缩略图显示在资源管理器里的工具 这样缩略图就取代图形文件的图标了,更方便管理和浏览
使用 Node.js 的视频缩略图 + WebVTT 缩略图生成器模块。 使用作为缩略图描述符。 可以使用 sprit 模块将缩略图打包到 spritesheet 中。 安装 npm install thumbnails-webvtt --save 要求 使用fluent-ffmpeg node...
以编程方式为YouTube生成的缩略图 用法 首先运行make 然后使用./venv/bin/python ./make-screenshot.py 用法: ./venv/bin/python ./make-screenshot.py --help usage: make-screenshot.py [-h] [--size {1080p,...
Video Thumbnails Maker是一款可以帮助你快速的制作视频文件的缩略图的免费软件 功能:该实用工具可用于家庭视频编目和网络视频共享的支持,程序虽然是英文的,但是非常容易 使用 使用:无需做任何设置,直接打开...
异步Node.js模块,用于从视频创建,缓存和获取缩略图。 它使用ffmpeg生成缩略图和ES6 Promise 。 该API现在更加可靠,并且在稳定发布之前不太可能进行重大更改。 欢迎提出健康的批评,功能要求和问题。 注意:从v...
使用Thumbnails插件实现对图片的压缩、裁剪、旋转、水印等。 导入项目后修改图片地址和输出图片地址,运行main方法即可看到效果。
缩图工具使用的缩略图生成器示例。 这是一个简单示例,说明如何在笔记本电脑上构建类似于AWS Lambda的功能。依存关系依赖关系由使用npm install管理。npm install配置请使用您的本地参数编辑config/development.json...
缩略图在客户端上生成缩略图,并将其缓存在浏览器的localStorage中。 当前,此软件包仅支持pdf缩略图的生成。 用法 可以从Atmosphere安装缩略图 Meteor add maxkferg: thumbnails Thumbnails.pdf(imageTag,url,...
* 如果最后一个参数不指定,那么缩略图就默认保存在原始图片的所在目录里的small文件夹里, * 如果不存在small文件夹,则会自动创建small文件夹 * * 初始化之后需要调用方法produce创建缩略图 * $thumbnails = ...
HLS实时缩略图 将从实时HLS流生成缩略图的服务。 既可以用作库,也可以作为服务运行并受http请求控制,也可以独立处理单个流。 安装 全局安装 。 您应该能够在命令提示符下简单地ffmpeg 。 npm install -g hls-...
JSP使用上传文件,并生产高清缩略图示例