2016-08-24 9 views
0

現在返されたビデオ(ギャラリーまたはビデオインテントのいずれか)からサムネイルをImageViewに表示しようとしていますが、FileNotFound例外とnullビットマップが返されています。エラーで判断してもどこが間違っているのかは完全にはわかりませんが、何とか正しくないパスでなければなりません。何か案は?Android ThumbnailUtilsはnullを返します。

if (requestCode == GALLERY_VIDEO_CODE || requestCode == VIDEO_CODE) { 
      videoURI = data.getData(); 
      if(videoURI != null) { 
       MediaPlayer mp = MediaPlayer.create(this, videoURI); 
       int duration = mp.getDuration(); 
       mp.release(); 
       if (duration <= 11000) { 
        addBtn.setVisibility(View.INVISIBLE); 
        clearBtn.setVisibility(View.VISIBLE); 
        Toast.makeText(this, "Video added!", Toast.LENGTH_LONG).show(); 
        File file = new File(videoURI.getPath()); 
        Bitmap bm = ThumbnailUtils.createVideoThumbnail(file.getAbsolutePath(), MediaStore.Video.Thumbnails.MINI_KIND); 
        userPhoto.setImageBitmap(bm); 
       } else { 
        videoURI = null; 
        Toast.makeText(this, "Video too long - maximum duration is 10 seconds", Toast.LENGTH_LONG).show(); 
        addBtn.setVisibility(View.VISIBLE); 
        clearBtn.setVisibility(View.INVISIBLE); 
       } 
+0

'ファイルファイル=新しいファイル(videoURI.getPath())' - これだけ作品を場合'Uri'には' file'スキームがあります。たいていの場合、 'ファイル'スキームを持つ 'Uri'はありません。代わりに、 'content'スキームを持ちます。 – CommonsWare

+0

その場合、サムネイルを取得する方法はありますか? – markeh21

+0

ピカソに 'videoURI'を渡し、サムネイルを取得させましょう:https://github.com/commonsguy/cw-omnibus/blob/v7.6/RecyclerView/VideoList/app/src/main/java/com/commonsware /android/recyclerview/videolist/RowController.java#L61-L65 – CommonsWare

答えて

関連する問題