2015-06-24 2 views
1

Мне нужно получить изображение из uri в свой VideoView, когда он загружается. Он должен исчезнуть и начать воспроизведение видео при ударе игры. Это мой VideoView код -Android - как установить миниатюру на VideoView с источником uri?

<RelativeLayout 
    android:id="@+id/video_frame" 
    android:layout_width="fill_parent" 
    android:layout_height="300dp" 
    android:background="#000" 
    > 

    <VideoView 
     android:id="@+id/video" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_centerInParent="true" 
     /> 

    <ImageButton 
     android:id="@+id/play_button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:src="@drawable/ic_media_play" 
     /> 

</RelativeLayout> 

Это, как я использую его -

final VideoView video = (VideoView) convertView.findViewById(R.id.video); 

    Uri uri = Uri.parse(submission.getUrl()); 
    video.setVideoURI(uri); 

    final ImageButton playButton = (ImageButton) convertView.findViewById(R.id.play_button); 
    video.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
     @Override 
     public void onCompletion(MediaPlayer mp) { 
      playButton.setVisibility(View.VISIBLE); 
     } 
    }); 
    playButton.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      if (video.isPlaying()){ 
      }else{ 
       video.start(); 
       playButton.setVisibility(View.GONE); 
      } 
     } 

    }); 

ответ

1

VideoView показывает видео. Он не показывает изображение. Аналогично, ImageView показывает изображение. Он не показывает видео.

Итак, используйте FrameLayout, обернутый вокруг ImageView и VideoView. Возьмите вид ImageView, и VideoView будет невидимым с самого начала. Загрузите изображение в ImageView. Когда пользователь нажимает кнопку воспроизведения, переключите видимость так, чтобы теперь отображался VideoView, и ImageView невидим и начните воспроизведение своего видео.

+0

мой вопрос, вероятно, немного неясен .. Мне нужно, чтобы извлечь изображение из самого видео. Не уверен, что это возможно. – Suchi

+0

@Suchi: если видео известно «MediaStore», оно должно иметь эскиз, который вы можете получить, как правило, через библиотеку загрузки изображений (см. [Это пример приложения] (https://github.com/commonsguy/cw -omnibus/дерево/мастер/Медиа/VideoList)). Если видео не известно «MediaStore», ['ThumbnailUtils'] (http://developer.android.com/reference/android/media/ThumbnailUtils.html) должно быть в состоянии извлечь его, хотя я его не использовал , – CommonsWare

1

Создайте грохот видео и покажите его на ImageView. Если вам нужно показать кнопку воспроизведения, вам понадобится другой ImageView (с иконкой кнопки Play). При щелчке по изображению изображения «Воспроизвести» воспроизведите видео в VideoView.

imageView.setImageBitmap(ThumbnailUtils.createVideoThumbnail(urlPath, 
    MediaStore.Video.Thumbnails.MICRO_KIND));