2011-04-12 4 views
4

Fondamentalement, ce que je veux faire dans mon application est l'affichage d'une vidéo.VideoView: Plein écran sur doubleTap

Le meilleur outil pour atteindre cet objectif semble être un VideoView.

J'utilisé ce code:

<VideoView android:id="@+id/videoview" android:layout_width="50dip" android:layout_height="50dip"></VideoView> 

et dans mon activité:

VideoView videoHolder = (VideoView)findViewById(R.id.videoview); 
videoHolder.setMediaController(new MediaController(this)); 
videoHolder.setVideoURI(Uri.parse("android.resource://com.blabla.blabla/" + R.raw.blabla)); 
videoHolder.requestFocus(); 
videoHolder.start(); 

et qui font l'affaire.

Malheureusement, je me attendais à avoir un aperçu (miniature) de la vidéo dans ma mise en page par défaut

Alors, je l'ai enlevé la videoHolder.start(); commande, mais je ne peux obtenir un écran noir. Le début de la vidéo en tapant sur une zone invisible ...

Première question

Est-ce possible d'afficher un aperçu de la vidéo dans le VideoView avant de le démarrer?

Deuxième question

Je wuld aime afficher la vidéo sur Fullscreen lors d'un double tapant sur la WebView, Comment puis-je y parvenir?

Merci beaucoup pour toute aide/link/suggestion

+0

pouvez-vous attraper le double-clic sur le webview et commencer une nouvelle activité qui est en plein écran? – Ian

Répondre

3

Oui, vous pouvez obtenir des vignettes vidéo à l'aide ThumbnailUtils:

Bitmap thumb = ThumbnailUtils.createVideoThumbnail(path, 
    MediaStore.Images.Thumbnails.MINI_KIND); 

Je ne l'ai pas vraiment vu des applications basculer en mode plein écran avant. Je ne suis pas sûr si cela peut être fait (surtout pour un VideoView). Cependant, vous pourriez avoir un peu de chance avec l'une des méthodes suivantes:

  1. tenant la VideoView dans un FrameLayout puis modifier ses paramètres de mise en page.
  2. Superposition de VideoView via Window#addContentView.
  3. Masquage (via Visibility.GONE) de vos autres vues et autorisation de VideoView d'étendre sa zone de mise en page.
+0

Semble que j'ai le même problème que cette question: http://stackoverflow.com/questions/5321853/java-lang-noclassdeffounderror-android-media-thumbnailutils Cette erreur est également décrite après votre propre réponse (que je devrais avoir lu avant lol) posté par user555806: http: // stackoverflow.com/questions/5233317/android-video-view-thumbnail Impossible d'obtenir la vignette .. Je vais essayer d'enquêter .. –

+0

Vous devez cibler android-8 (Froyo) ou plus tard pour accéder à cette classe. –

0

Vous pouvez utiliser VideoView.seekTo (millisecondes) comme alternative, soit 1 seconde (1000 millisecondes). Pourvu que le clip vidéo après une seconde ait une image, comme certaines vidéos commencent à partir d'un écran vide alors "fondu" (manque de meilleur mot) à une scène vous donnera plus souvent un écran noir avec 1 seconde. Vous pouvez l'appeler sous VideoView.onPrepared(). Celui que j'utilise lorsque la vidéo est sur un serveur web.