2011-05-02 25 views
10

No encuentro ninguna solución para mostrar una animación de carga (o simplemente una imageView) antes de que comience a reproducirse VideoView: durante el almacenamiento en búfer del video.Android carga la animación antes del inicio de VideoView

¿Alguien tiene una pista?

Gracias.

+1

Es difícil de entender, pero creo que lo que quiere es una barra de progreso indeterminado. – user432209

+0

Lo siento si no estoy seguro. Mi VideoView reproducir un video en streaming. Entonces, cuando la actividad comienza, solo veo una pantalla negra mientras el video está almacenado. Si miras la aplicación de YouTube por instancia, hay una animación que explica que el video se está cargando, y no creo que sea una barra de progreso de indeterminación. ¿Cómo puedo detectar que el video está almacenado en el búfer? Gracias – magiccyril

Respuesta

6

Finalmente encontré el método setOnPreparedListener() en VideoView.

he añadido un ProgressBar dentro de mi diseño, y se esconden con el OnPreparedListener

+0

gracias. ¡Fui con esto también! – user123321

40

O simplemente puede utilizar el indicador de progreso;

public class VideoEkrani extends Activity { 

    VideoView ekran; 
    String kaynakYolu = "http://commonsware.com/misc/test2.3gp"; 
    ProgressDialog progDailog; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.sayfa_video_goruntule); 


     ekran = (VideoView) findViewById(R.id.videoViewESPU); 
     ekran.setMediaController(new MediaController(this)); 
     ekran.setVideoURI(Uri.parse(kaynakYolu)); 
     ekran.requestFocus(); 
     ekran.start(); 

     progDailog = ProgressDialog.show(this, "Please wait ...", "Retrieving data ...", true); 

     ekran.setOnPreparedListener(new OnPreparedListener() { 

      public void onPrepared(MediaPlayer mp) { 
       // TODO Auto-generated method stub 
       progDailog.dismiss(); 
      } 
     }); 
    } 
} 
+3

¡Has salvado mi vida! Gracias a un millón de billones de veces @Amourreux. Sé que es inapropiado agradecer a las personas que se desbordan de la pila, pero tampoco es suficiente para dejarlo pasar sin decirle a la gente que si se enfrentan a problemas en VideoView, esta es la solución. :) – Prachi

+0

¿Qué pasa si el usuario busca video, ¿cómo se puede poner un progressBar hasta que vuelva a transmitir? –

+0

@ Mr.G No estoy seguro, pero creo que el evento está gestionado por MediaController. de nuevo, no estoy seguro. si entiendo tu pregunta correctamente si no, podría ser una buena y nueva publicación de pregunta. –

3

usted no puede detectar la memoria intermedia de vídeo utilizando OnBufferingUpdateListener en MediaPlayer. Si usa VideView configure ese oyente dentro de OnPreparedListener.

videoview.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
    public void onPrepared(MediaPlayer mp) { 
    mp.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() { 
     @Override 
     public void onBufferingUpdate(MediaPlayer mp, int percent) { 
     if(percent == 100){ 
      //video have completed buffering 
     } 
     } 
    }); 
    } 
}); 
Cuestiones relacionadas