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);
}
'ファイルファイル=新しいファイル(videoURI.getPath())' - これだけ作品を場合'Uri'には' file'スキームがあります。たいていの場合、 'ファイル'スキームを持つ 'Uri'はありません。代わりに、 'content'スキームを持ちます。 – CommonsWare
その場合、サムネイルを取得する方法はありますか? – markeh21
ピカソに '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