简体   繁体   中英

How to get specified video from sdcard in android?

i am able to show all videos from sdcard into ListView but how to show only specified videos from sdcard into Listview in android.Can anybody help please?

-I am showing all videos in Listview. -show particular video file.

This is my Code.

         public class VideoStoredInSDCard extends Activity
   {
         private Cursor videoCursor;
         private int videoColumnIndex;
         ListView videolist;
         int count;
         String thumbPath;


       String[] thumbColumns = { MediaStore.Video.Thumbnails.DATA,MediaStore.Video.Thumbnails.VIDEO_ID };
      /** Called when the activity is first created. */
       @Override
       public void onCreate(Bundle savedInstanceState)
    {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
       initialization();
    }

   private void initialization()
{
  System.gc();
   String[] videoProjection = { 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,videoProjection, null, null, null);
   count = videoCursor.getCount();

   videolist = (ListView) findViewById(R.id.PhoneVideoList);
   System.out.println("========gte Count of video List============== :" + videolist);
   videolist.setAdapter(new VideoListAdapter(this.getApplicationContext()));
   videolist.setOnItemClickListener(videogridlistener);
 }

 private OnItemClickListener videogridlistener = new OnItemClickListener() {
 public void onItemClick(AdapterView parent, View v, int position,long id)
 {
  System.gc();
   videoColumnIndex = videoCursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
   videoCursor.moveToPosition(position);
   String filename = videoCursor.getString(videoColumnIndex);

  Log.i("FileName: ", filename);

Intent intent = new Intent(VideoStoredInSDCard.this, ViewVideo.class);
intent.putExtra("videofilename", filename);
startActivity(intent);
}};

public class VideoListAdapter extends BaseAdapter
 {
 private Context vContext;
 int layoutResourceId;

public VideoListAdapter(Context c)
 {
  vContext = c;
 }

 public int getCount()
 {
return videoCursor.getCount();
 }

public Object getItem(int position)
 {
   return position;
 }

 public long getItemId(int position)
 {
   return position;
 }

          public View getView(int position, View convertView, ViewGroup parent)
   {
           View listItemRow = null;
           listItemRow = LayoutInflater.from(vContext).inflate(R.layout.listitem, parent, false);

            TextView txtTitle = (TextView)listItemRow.findViewById(R.id.txtTitle);
            TextView txtSize = (TextView)listItemRow.findViewById(R.id.txtSize);
            ImageView thumbImage = (ImageView)listItemRow.findViewById(R.id.imgIcon);

      videoColumnIndex = videoCursor.getColumnIndexOrThrow(MediaStore.Video.Media.DISPLAY_NAME);
      videoCursor.moveToPosition(position);
      txtTitle.setText(videoCursor.getString(videoColumnIndex));

      videoColumnIndex = videoCursor.getColumnIndexOrThrow(MediaStore.Video.Media.SIZE);
      videoCursor.moveToPosition(position);
      txtSize.setText(" Size(KB):" + videoCursor.getString(videoColumnIndex));

       int videoId = videoCursor.getInt(videoCursor.getColumnIndexOrThrow(MediaStore.Video.Media._ID));
       Cursor videoThumbnailCursor = managedQuery(MediaStore.Video.Thumbnails.EXTERNAL_CONTENT_URI,
       thumbColumns, MediaStore.Video.Thumbnails.VIDEO_ID+ "=" + videoId, null, null);

     if (videoThumbnailCursor.moveToFirst())
  {
      thumbPath = videoThumbnailCursor.getString(videoThumbnailCursor.getColumnIndex(MediaStore.Video.Thumbnails.DATA));
      Log.i("ThumbPath: ",thumbPath);

  }
     thumbImage.setImageURI(Uri.parse(thumbPath));
  System.out.println("============Thumbnail============== :" + videoThumbnailCursor);
     return listItemRow;

    }

}

}

I am using other way to get the names of the files from sdcard. I am using files concept to do this as in How to display files on the SD card in a ListView?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM