Как получить указанное видео с SDCard в Android? - PullRequest
4 голосов
/ 12 марта 2012

Я могу показать все видео с SDCard в ListView, но как показать только указанные видео с SDCard в ListView в Android. Может ли кто-нибудь помочь, пожалуйста?

-Я показываю все видео в Listview. - показать конкретный видеофайл.

Это мой код.

         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;

    }

}

}

1 Ответ

0 голосов
/ 08 августа 2012

Я использую другой способ получить имена файлов из SDCard. Я использую концепцию файлов для этого, как в Как отображать файлы на SD-карте в ListView?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...