如何列出从Android中特定文件夹中的所有视频 [英] How to list all videos from specific folder in android

查看:752
本文介绍了如何列出从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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆