0
當前嘗試從返回的視頻(從圖庫或設備上的視頻意圖)獲取縮略圖以顯示在ImageView中,但獲取FileNotFound異常並返回空位圖。不完全確定我要出錯的地方,儘管從錯誤來看它肯定是不正確的路徑。有任何想法嗎?Android ThumbnailUtils返回null,filenotfoundexception?
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'和'file'方案。相反,它會有一個「內容」方案。 – 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