如何列出从Android中特定文件夹中的所有视频 [英] How to list all videos from specific folder in android
本文介绍了如何列出从Android中特定文件夹中的所有视频的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在视频录制application.I工作要列出我将存储在特定的folder.By以下code中的视频,我能够从mobile.But获取所有影片我需要列出从特定folder.Can人视频指导我please.Thanks提前
公共类VideoListActivity延伸活动{
私人光标videocursor;
私人诠释video_column_index;
ListView的videolist;
诠释计数; / **当第一次创建活动调用。 * /
@覆盖
公共无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_video_list);
init_phone_video_grid();
} 私人无效init_phone_video_grid(){
System.gc()的;
的String [] = PROJ {MediaStore.Video.Media._ID,
MediaStore.Video.Media.DATA,
MediaStore.Video.Media.DISPLAY_NAME,
MediaStore.Video.Media.SIZE};
videocursor = managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
PROJ,NULL,NULL,NULL);
数= videocursor.getCount(); videolist =(ListView控件)findViewById(R.id.listView1);
videolist.setAdapter(新VideoAdapter(getApplicationContext()));
videolist.setOnItemClickListener(videogridlistener);
} 私人OnItemClickListener videogridlistener =新OnItemClickListener(){
公共无效onItemClick(适配器视图父母,视图V,INT位置,
长ID){
System.gc()的;
video_column_index = videocursor
.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
videocursor.moveToPosition(位置);
字符串文件名= videocursor.getString(video_column_index);
意向意图=新意图(VideoListActivity.this,Viewvideo.class);
intent.putExtra(videofilename,文件名); startActivity(意向);
}
}; 公共类VideoAdapter延伸BaseAdapter {
私人语境vContext; 公共VideoAdapter(上下文C){
vContext = C;
} 公众诠释的getCount(){
返回计数;
} 公共对象的getItem(INT位置){
返回的位置;
} 众长getItemId(INT位置){
返回的位置;
} 公共查看getView(INT位置,查看convertView,父母的ViewGroup){
System.gc()的;
TextView的电视=新的TextView(vContext.getApplicationContext());
字符串ID = NULL;
如果(convertView == NULL){
video_column_index = videocursor
.getColumnIndexOrThrow(MediaStore.Video.Media.DISPLAY_NAME);
videocursor.moveToPosition(位置);
ID = videocursor.getString(video_column_index);
video_column_index = videocursor
.getColumnIndexOrThrow(MediaStore.Video.Media.SIZE);
videocursor.moveToPosition(位置);
ID + =大小(KB):+ videocursor.getString(video_column_index);
ImageView的IV =新ImageView的(vContext);
ContentResolver的crThumb = getContentResolver();
BitmapFactory.Options选项=新BitmapFactory.Options();
options.inSampleSize = 1;
位图curThumb = MediaStore.Video.Thumbnails.getThumbnail(crThumb,位置,MediaStore.Video.Thumbnails.MICRO_KIND,期权);
iv.setImageBitmap(curThumb); tv.setText(ID); }其他
电视=(TextView中)convertView;
返回电视;
}
}
}
解决方案
一个有点晚,但发布为未来的观众。
开放的URI = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
字符串条件= MediaStore.Video.Media.DATA +怎么样?
的String [] = selectionArguments新的String [] {%FOLDERPATH%};
字符串中将sortOrder = MediaStore.Video.Media.DATE_TAKEN +DESC;
的String [] =投影{MediaStore.Images.Media._ID,MediaStore.Images.Media.BUCKET_ID,
MediaStore.Images.Media.BUCKET_DISPLAY_NAME,MediaStore.Images.Media.DATA};
光标光标= getContentResolver()查询(URI,投影,条件,selectionArguments,中将sortOrder)。
INT idColumn = cursor.getColumnIndexOrThrow(MediaStore.Images.Media._ID);
INT pathColumn = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);如果(指针!= NULL){
ContentResolver的解析器= getApplicationContext()getContentResolver()。
而(cursor3.moveToNext()){
字符串文件路径= cursor.getString(pathColumn);
INT ID = cursor.getInt(idColumn);
位图的缩略图= =位MediaStore.Video.Thumbnails.getThumbnail(解析器,imageID,
MediaStore.Video.Thumbnails.MICRO_KIND,NULL);
}
}
I am working on video recording application.I want to list the videos which I would be stored in particular folder.By the following code,I can able to fetch all videos from mobile.But i need to list the videos from particular folder.Can anyone guide me please.Thanks in Advance
public class VideoListActivity extends Activity {
private Cursor videocursor;
private int video_column_index;
ListView videolist;
int count;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_list);
init_phone_video_grid();
}
private void init_phone_video_grid() {
System.gc();
String[] proj = { MediaStore.Video.Media._ID,
MediaStore.Video.Media.DATA,
MediaStore.Video.Media.DISPLAY_NAME,
MediaStore.Video.Media.SIZE };
videocursor = managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
proj, null, null, null);
count = videocursor.getCount();
videolist = (ListView) findViewById(R.id.listView1);
videolist.setAdapter(new VideoAdapter(getApplicationContext()));
videolist.setOnItemClickListener(videogridlistener);
}
private OnItemClickListener videogridlistener = new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v, int position,
long id) {
System.gc();
video_column_index = videocursor
.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
videocursor.moveToPosition(position);
String filename = videocursor.getString(video_column_index);
Intent intent = new Intent(VideoListActivity.this, Viewvideo.class);
intent.putExtra("videofilename", filename);
startActivity(intent);
}
};
public class VideoAdapter extends BaseAdapter {
private Context vContext;
public VideoAdapter(Context c) {
vContext = c;
}
public int getCount() {
return count;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
System.gc();
TextView tv = new TextView(vContext.getApplicationContext());
String id = null;
if (convertView == null) {
video_column_index = videocursor
.getColumnIndexOrThrow(MediaStore.Video.Media.DISPLAY_NAME);
videocursor.moveToPosition(position);
id = videocursor.getString(video_column_index);
video_column_index = videocursor
.getColumnIndexOrThrow(MediaStore.Video.Media.SIZE);
videocursor.moveToPosition(position);
id += " Size(KB):" + videocursor.getString(video_column_index);
ImageView iv = new ImageView(vContext);
ContentResolver crThumb = getContentResolver();
BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize = 1;
Bitmap curThumb = MediaStore.Video.Thumbnails.getThumbnail(crThumb, position, MediaStore.Video.Thumbnails.MICRO_KIND, options);
iv.setImageBitmap(curThumb);
tv.setText(id);
} else
tv = (TextView) convertView;
return tv;
}
}
}
解决方案
A bit late but posting for future viewers
Uri uri= MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
String condition=MediaStore.Video.Media.DATA +" like?";
String[] selectionArguments=new String[]{"%FolderPath%"};
String sortOrder = MediaStore.Video.Media.DATE_TAKEN + " DESC";
String[] projection = { MediaStore.Images.Media._ID, MediaStore.Images.Media.BUCKET_ID,
MediaStore.Images.Media.BUCKET_DISPLAY_NAME,MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(uri,projection, condition, selectionArguments, sortOrder);
int idColumn = cursor.getColumnIndexOrThrow(MediaStore.Images.Media._ID);
int pathColumn=cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
if(cursor!=null){
ContentResolver resolver = getApplicationContext().getContentResolver();
while(cursor3.moveToNext()){
String filePath=cursor.getString(pathColumn);
int id = cursor.getInt(idColumn );
Bitmap thumbNail = bitmap=MediaStore.Video.Thumbnails.getThumbnail(resolver, imageID,
MediaStore.Video.Thumbnails.MICRO_KIND, null);
}
}
这篇关于如何列出从Android中特定文件夹中的所有视频的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文