2016-08-24 16 views
0

В настоящее время вы пытаетесь получить эскиз с возвращенного видео (либо из галереи, либо из намерения видео на устройстве) для отображения в ImageView, но я получаю исключения FileNotFound и возвращаемый null Bitmap. Не совсем уверен, где я ошибаюсь, хотя, судя по ошибке, это должен быть путь, который не так прав. Есть идеи?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); 
       } 
+0

файл 'File = новый файл (videoURI.getPath())' - это только будет работать, если 'Uri' имеет схему« файл ». В большинстве случаев у вас не будет 'Uri' с« файловой »схемой. Вместо этого он будет иметь схему «контента». – CommonsWare

+0

В каком случае, есть ли способ получить миниатюру для этого? – markeh21

+0

Передайте 'videoURI' в Picasso и дайте ему получить миниатюру: 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

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^