2017-10-11 9 views
0

특정 경로에서 모든 이미지와 비디오를 가져 와서 이들의 축소판을 가져 와서 다른 경로에 배치하는 방법을 사용하고 있습니다. 나는 다음과 같은 것을 가지고있다.경로에서 이미지 및 비디오 축소판을 가져 오는 방법. 작동하지 않음

public void getThumbnails(String persistentDataPath) { 
    // Get relevant columns for use later. 
    String[] projection = { 
      MediaStore.Files.FileColumns._ID, 
      MediaStore.Files.FileColumns.DATA, 
      MediaStore.Files.FileColumns.DATE_ADDED, 
      MediaStore.Files.FileColumns.MEDIA_TYPE, 
    }; 

    // Return only video and image metadata. 
    String selection = MediaStore.Files.FileColumns.MEDIA_TYPE + "=" 
      + MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE 
      + " OR " 
      + MediaStore.Files.FileColumns.MEDIA_TYPE + "=" 
      + MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO; 


    Uri queryUri = Uri.parse(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES).toString() + "/Azlo/"); 
    ContentResolver cr = getContentResolver(); 

    Cursor cursor = cr.query(
      queryUri, 
      projection, 
      selection, 
      null, // Selection args (none). 
      MediaStore.Files.FileColumns.DATE_ADDED + " DESC" // Sort order. 
    ); 
    Bitmap bitmap; 
    //Now i will traverse the cursor and get the bitmap thumbnail for every item 
    for(int i = 0 ; i < cursor.getCount(); i++) { 
     cursor.moveToPosition(i); 
     long elementId = cursor.getLong(0); 
     // code to get the thumbail using the item id 
     // using method MediaStorage.Video.Thumbnails.getThumbnail 
     // and MediaStorage.Image.Thumbnails.getThumbnail 
    } 
} 

문제는 쿼리가 작동하지 않고 반환 null이 나는 이유를 모른다는 것이다. 내가 사용하는 경로는 "/ storage/emulated/0/Movies/AzloAR"를 반환하며 그 폴더 안에 .mp4 및 .jpg 파일이 있습니다.

제발 도와 주실 수 있습니까? :)

또 다른 질문은, (조건부로) 커서 항목이 비디오인지 이미지인지 어떻게 알 수 있습니까?

+0

이 비슷한 질문에 대한 답변이 도움이되는지 확인하십시오 : https://stackoverflow.com/questions/13080540/what-causes-androids-contentresolver-query-to-return-null – TheAtomicOption

답변

0

내가 쿼리에 보내는 URI가 invalidad입니다. 쿼리에는 content:// 스타일 URI가 필요하며 MediaStore.Files.getContentUri(String volumeName) 또는 MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI과 같은 MediaStore 클래스의 메서드와 필드를 사용하여 쿼리를 생성합니다.