2010-06-04 22 views
1

J'ai une application qui affiche une vidéo en utilisant VideoView. La disposition se compose d'une horloge et d'un VideoView disposés dans un LinearLayout vertical simple.Android Afficher l'image pendant que la vidéo est mise en mémoire tampon?

Voici mon extrait de code que j'utilise:

VideoView mVideoView = new VideoView(this); 
mVideoView.setVideoPath(myVideoURL); 
mVideoView.requestFocus(); 
mVideoView.start(); 

Depuis la mise en mémoire tampon de la vidéo dure environ 8-10 secondes, la mise en page est livré avec l'horloge, mais le VideoView reste vide. Ce que je veux atteindre est le suivant:

- Afficher un ImageView pour les 10s pendant que la vidéo est mise en mémoire tampon - détecter lorsque la vidéo est prête à être jouée (onPrepared?) - Afficher l'horloge et VideoView et commencer la vidéo

Quelqu'un at-il des conseils sur la façon de procéder?

Merci Chris

Répondre

2

MediaPlayer vous permettra d'enregistrer un rappel OnPreparedListener que vous pouvez utiliser pour déterminer quand la vidéo est prêt à démarrer. Ainsi, vous montreriez d'abord votre ImageView au lieu de votre VideoView, puis lorsque votre rappel sera appelé, passez à VideoView et commencez à jouer.

+0

Donc, rendre visible ImageView, puis surPréparé, rendre l'Imageview invisible et rendre l'horloge et VideoView visibles, puis appelez mVideoView.start()? – Chris

+0

@Chris: sure ... – JRL

+3

@JRL: J'ai utilisé 'setOnPrepareListener()' mais cela fonctionne pour la première mise en mémoire tampon mais si la vidéo recommence à mettre en mémoire tampon comment gérer cela. J'avais utilisé 'setOnInfoListener()' avec 'MediaPlayer' mais il semble que' VideoView' ne le supporte pas. Je veux afficher la boîte de dialogue à chaque fois que videoView démarre la mise en mémoire tampon. – Nishant