- 浏览: 249308 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (303)
- c (31)
- c++ (16)
- java (18)
- c# (1)
- python (3)
- java web (6)
- oracle (7)
- sqlserver (2)
- mysql (2)
- android (24)
- android系统 (15)
- android多媒体部分 (15)
- android游戏 (12)
- linux (26)
- javaScript (1)
- ajax (1)
- node JS (2)
- html (5)
- apache (3)
- jboss (1)
- weblogic (0)
- 通信协议 (10)
- 云计算 (1)
- 分布式 (5)
- ejb (1)
- webservice (5)
- 设计模式 (16)
- JNI (6)
- swing (13)
- 版本控制 (1)
- UML (1)
- xml (4)
- spring (5)
- hibernate (5)
- struts1 (3)
- struts2 (4)
- ibatis (0)
- tomcat (2)
- 心得体会 (1)
- css (1)
- 嵌入式 (41)
- arm体系结构 (10)
/**
* mediaStore检索视频
*
* @time 下午05:15:41
* @author retacn yue
* @Email zhenhuayue@sina.com
*/
public class VideoGalleyActivity extends Activity implements OnClickListener, OnItemClickListener {
private ListView listView;
private Cursor cursor;
/**
* 视频文件信息
*/
class VideoViewInfo {
String filePath;
String mimeType;
String thumbPath;
String title;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.video_gallery);
findView();
init();
getVideo();
}
/**
* 初始化方法
*/
private void init() {
}
/**
* 实例化控件
*/
private void findView() {
listView = (ListView) this.findViewById(R.id.listView);
listView.setOnItemClickListener(this);
}
@Override
public void onClick(View v) {
}
/**
* mediaStore检索视频
*/
private void getVideo() {
String[] mediaColumns = { MediaStore.Video.Media._ID,//
MediaStore.Video.Media.DATA,//
MediaStore.Video.Media.TITLE,//
MediaStore.Video.Media.MIME_TYPE };
String[] thumbColumns = { MediaStore.Video.Thumbnails.DATA,//
MediaStore.Video.Thumbnails.VIDEO_ID //
};
cursor = managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, mediaColumns, null, null, null);
ArrayList<VideoViewInfo> viewInfos = new ArrayList<VideoGalleyActivity.VideoViewInfo>();
if (cursor.moveToFirst()) {
do {
VideoViewInfo info = new VideoViewInfo();
// 获取缩略图
int id = cursor.getInt(cursor.getColumnIndex(MediaStore.Video.Media._ID));
String selection = MediaStore.Video.Thumbnails.VIDEO_ID + "=?";
String[] selectionArgs = new String[] { id + "" };
Cursor thumbCursor = this.managedQuery(MediaStore.Video.Thumbnails.EXTERNAL_CONTENT_URI, thumbColumns, selection, selectionArgs, null);
if (thumbCursor.moveToFirst()) {
info.thumbPath = thumbCursor.getString(thumbCursor.getColumnIndex(MediaStore.Video.Thumbnails.DATA));
}
info.filePath = cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.DATA));
info.title = cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.TITLE));
info.mimeType = cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.MIME_TYPE));
viewInfos.add(info);
} while (cursor.moveToNext());
}
listView.setAdapter(new VideoGalleryAdapter(VideoGalleyActivity.this, viewInfos));
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (cursor.moveToPosition(position)) {
int fileColum = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
int mimeColum = cursor.getColumnIndex(MediaStore.Video.Media.MIME_TYPE);
String videoFilePath = cursor.getString(fileColum);
String mimeType = cursor.getString(mimeColum);
Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
File file = new File(videoFilePath);
intent.setDataAndType(Uri.fromFile(file), mimeType);
startActivity(intent);
}
}
/*****************************************/
/**
*
*/
class VideoGalleryAdapter extends BaseAdapter {
private List<VideoViewInfo> items;
LayoutInflater inflater;
/**
* 构造器
*/
public VideoGalleryAdapter(Context context, ArrayList<VideoViewInfo> viewInfos) {
this.items = viewInfos;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return items.size();
}
@Override
public Object getItem(int position) {
return items.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (null == convertView) {
convertView = inflater.inflate(R.layout.list_item, null);
holder = new ViewHolder();
holder.imageView = (ImageView) convertView.findViewById(R.id.img_thumb);
holder.textView = (TextView) convertView.findViewById(R.id.txt_info);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
String tmpStr = items.get(position).thumbPath;
if (null != tmpStr) {
holder.imageView.setImageURI(Uri.parse(tmpStr));
}
holder.textView.setText(items.get(position).title);
return convertView;
}
class ViewHolder {
ImageView imageView;
TextView textView;
}
}
}
发表评论
-
android多媒体学习笔记一
2012-09-04 10:47 6961 使用内置的camera应用程序捕获图像 /*** ... -
android多媒体学习笔记二
2012-09-04 10:53 778实现SurfaceHolder.Callback ,P ... -
android多媒体学习笔记三___图像合成
2012-09-05 11:36 593/** * 图像合成 * * @time 下午06:21 ... -
android多媒体部分学习笔记四___ Matrix
2012-09-05 11:40 688/*** 图像的缩放和旋转 Matrix** 1 0 0 x= ... -
android多媒体部分学习笔记五----audio
2012-09-08 16:08 681/*** 打开内置音乐播放器*/private void ge ... -
android多媒体部分学习笔记六----音频录制 mediaRecorder
2012-09-08 16:12 637/** * * 使用意图捕获音频 * * @time ... -
android多媒体部分学习笔记七------音频录制 mediaRecorder
2012-09-08 16:13 717/** * 自定义捕获音频 * * @time 下午12 ... -
android多媒体部分学习笔记八------音频录制 mediaRecorder
2012-09-08 16:14 732/** * 原始音频的播放和录制 * * audio ... -
android 多媒体部分学习笔记九----数字音频合成
2012-09-09 12:43 802/** * 数字音频合成 * * @time 下午12: ... -
android 多媒体部分学习笔记十 可视化频率(频谱)
2012-09-09 23:43 3180/** * 可视化频率 * * @time 下午12 ... -
android 多媒体部分学习笔记十--简单视频播放
2012-09-10 17:53 725/** * 简单播放 * * @time 下午05:15 ... -
android 多媒体部分学习笔记十二----mediaplay自定义播放器
2012-09-10 22:31 1605/** * * 自定义播放器 * * @time 下午 ... -
android 多媒体部分学习十四---网络视频播放(http/rtsp)
2012-09-12 14:36 1813/** * 网络视频播放 * * openCore * ... -
android 多媒体部分学习笔记十五-----视频录制
2012-09-12 15:02 715/** * 调用系统视频录制 * * @time 下午0 ...
相关推荐
该文章是为了检索手机上sd卡中的视频,然后将检索出来的相应视频的缩略图,名称等视频信息显示在ListView上。点击每个item后播放相应的视频。
认识Android多媒体数据库MediaStore.doc
资源分类:Python库 所属语言:Python 资源全名:mypy-boto3-mediastore-data-1.16.31.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
python库。 资源全名:mypy-boto3-mediastore-data-1.14.55.2.tar.gz
python库。 资源全名:mypy-boto3-mediastore-data-1.14.18.0.tar.gz
python库。 资源全名:mypy-boto3-mediastore-data-1.14.36.0.tar.gz
python库。 资源全名:mypy-boto3-mediastore-data-1.18.53.tar.gz
资源来自pypi官网。 资源全名:mypy-boto3-mediastore-data-1.11.8.0.tar.gz
资源来自pypi官网。 资源全名:mypy-boto3-mediastore-data-1.11.10.0.tar.gz
资源来自pypi官网。 资源全名:mypy-boto3-mediastore-data-1.12.5.0.tar.gz
资源来自pypi官网。 资源全名:mypy-boto3-mediastore-data-1.17.37.0.tar.gz
资源来自pypi官网。 资源全名:mypy-boto3-mediastore-data-1.17.60.0.tar.gz
资源来自pypi官网。 资源全名:mypy-boto3-mediastore-data-1.14.50.0.tar.gz
资源来自pypi官网。 资源全名:mypy-boto3-mediastore-data-1.14.27.0.tar.gz
python库。 资源全名:aws-cdk.aws-mediastore-1.39.0.tar.gz
资源分类:Python库 所属语言:Python 资源全名:mypy-boto3-mediastore-data-1.12.1.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
资源分类:Python库 所属语言:Python 资源全名:mypy-boto3-mediastore-data-1.17.21.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
资源来自pypi官网。 资源全名:mypy-boto3-mediastore-1.11.1.1.tar.gz
资源来自pypi官网。 资源全名:mypy-boto3-mediastore-1.14.41.0.tar.gz
资源来自pypi官网。 资源全名:aws-cdk.aws-mediastore-1.45.0.tar.gz