android 的视频的缩略图以及在android上的本地图片和本地音乐的查询

1:       在android的内部查询本地的多媒体资源,可以有多种的途径。有sd卡的获取,和android的内容提供者。
     这次是写contentprovider。
  
 android 本地视频缩略图 先要通过contentprovider获取android内部存放视频的数据库 android.provider.MediaStore.Video.Thumbnails
  //通过ContentResolver 来获取视频的资源
       public  ArrayList<MediaVideo> getLocalVideo(Context paramContext)
       {
             this. mVideos.clear();
              
                 
           下面两个str字符串的含义是一样的  不过在数据的命名不是一样的
             最好还是写成Media.XX的形式 更好辨认
             String str[] = new String[] { Media. DATA, Media._ID,  Media.DISPLAY_NAME , Media.SIZE };  
             String[] str={ "_data", "_display_name", "duration"};
            
             ContentResolver cr = paramContext.getContentResolver();
             Cursor cursor = cr.query(MediaStore.Video.Media. EXTERNAL_CONTENT_URI, str , null, null, null);
              if( cursor== null|| cursor.getCount()==0)
              {
                 Log. d("getLocalVideo" , "first return" );
                 return null;
                
              }
             
              if( cursor.moveToFirst())
              {
                 int id;
                 int nameID;
                 int durationID;
                 id= cursor.getColumnIndex( "_data");
                 nameID= cursor.getColumnIndex( "_display_name");
                 durationID= cursor.getColumnIndex( "duration");
                
                 do{
                      //把数据拿到以后存入MediaVideo的数组中
                     MediaVideo localMediaVideo= new MediaVideo();
                      localMediaVideo.setVideoPath( cursor.getString( id));
                      localMediaVideo.setVideoName( cursor.getString( nameID));
                      localMediaVideo.setVideoDuration( cursor.getInt( durationID));
                      mVideos.add( localMediaVideo);
                     
                     Log. i("movieID" ,cursor .getString(id ) );
                     Log. i("movieName" ,cursor .getString(nameID ) );
                } while( cursor.moveToNext());
                 return mVideos;
              }
              cursor.close();
              return null;
       }


当你上面的方法执行完以后 拿到视频的数组返回值以后就调用下面的方法 就可以拿到视频的缩略图了


     public  List<Bitmap> getVideoThumbnail(ArrayList<MediaVideo> mVideos , int width , int height,
     int kind)
     {
           
     
     Bitmap mbitmap = null;
     ArrayList<MediaVideo> videos= new ArrayList<MediaVideo>();
     List<Bitmap> bitmap= new ArrayList<Bitmap>();
     videos=mVideos;
     //如果手机没有视频 就会报空指针
     if(videos==null)
     {
           System. out.println( "没有视频");
     }else{
     // 获取视频的缩略图
     for(int i=0;i<videos.size();i++)
     {
                
                 mbitmap = ThumbnailUtils.createVideoThumbnail( videos.get( i).getVideoPath(), kind);
                 mbitmap = ThumbnailUtils.extractThumbnail(mbitmap, width,height,
                          ThumbnailUtils. OPTIONS_RECYCLE_INPUT);
                
                 bitmap.add( mbitmap);
           }
     
     }
     return bitmap;
}



2:而想获取音乐和图片  的资源 其实是一样的方法
只不过是把表换成 
MediaStore.Images.Media. EXTERNAL_CONTENT_URI
MediaStore.Audios.Media. EXTERNAL_CONTENT_URI
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值