Cómo mostrar la barra de progreso antes de reproducir el video
Quiero mostrar el diálogo de progreso antes de reproducir el video. Intenté abajo el ejemplo del acoplamiento para jugar el vídeo.
Android – Video/Music player sample (Take #2)
- Pantalla de MediaProjection de Android que refleja al explorador de Web sobre USB
- Conecte el androide al LAN local vía el teléfono (sobre wifi O vía la conexión del USB)
- Codificación H.264 de la cámara con Android MediaCodec
- Cómo cambiar framerate cuando se utiliza clase MediaRecorder
- Grabar MPEG TS usando MediaRecorder
Funciona, pero se necesita más tiempo para tomar para reproducir vídeo, así que quiero mostrar un diálogo de progreso antes de iniciar el video. Así que por favor díganme cómo mostrar el diálogo de progreso antes de reproducir el video.
Gracias.
Atentamente.
- Solución de streaming UDP o RTP para android
- Calidad de vídeo del flujo de http en VideoView (Adaptive streaming)
- ¿Cómo acceder CORRECTAMENTE a datos de cámara LIVE en Android? ¿Cómo lo hace Skype?
- Soporte de nivel de perfiles de Android H.264
- Cómo evitar el tiempo de espera de sesión en Android
- Implementación de la cámara IP en Android (Ver vídeo en directo desde la cámara IP)
- ¿Cómo actualizar manualmente el navegador android con el último webkit (nocturno)?
- GsaIOException Desbordamiento del búfer, sin espacio disponible
Primero, declare el diálogo de progreso
private static ProgressDialog progressDialog;
Luego, en onCreate, antes de llamar a runOnUiThread, inicie el diálogo
progressDialog = ProgressDialog.show(this, "", "Loading...", true);
En playVideo, establezca un OnPreparedListener que descartará el diálogo cuando el video esté listo para jugar
mVideoView.setOnPreparedListener(new OnPreparedListener() { public void onPrepared(MediaPlayer arg0) { progressDialog.dismiss(); mVideoView.start(); } });
IMHO en este caso es más gracioso utilizar el widget ProgressBar insted del diálogo Progress. Se ve mejor en la superficie del video. Puede agregar la barra de progreso al diseño de su actividad por encima del VideoView:
<ProgressBar android:id="@+id/progress" android:indeterminate="true" android:indeterminateBehavior="repeat" android:layout_width="100dp" android:layout_height="100dp" android:layout_gravity="center"> </ProgressBar>
En onCreate, antes de llamar a runOnUiThread, muestre el progreso:
mProgress = (ProgressBar)findViewById(R.id.progress); mProgress.setVisibility( View.VISIBLE );
En onPrepared callback ocultar el progreso:
mProgress.setVisibility( View.INVISIBLE );
Yo sugeriría mirar la documentación AsyncTask , esto parece ideal para hacer la pre-carga de vídeo. Esto le permitirá mantener su hilo de interfaz de usuario estable durante la carga. Hay un ejemplo de utilizar el método AsyncTask aquí .
Para agregar un diálogo de progreso:
- Cree un objeto ProgressDialog privado como parte de una clase de extensión de AsyncTask.
- En el método
onPreExecute()
puede realizar la configuración del diálogo de progreso, comopd.setMessage(...) pd.setTitle(...) pd.show(...)
- En el
onPostExecute(...)
, descarte el diálogo:pd.dismiss();
Además, puede actualizar el diálogo de progreso utilizando su método incrementProgressBy(...)
o alternativamente tener una animación de bucle utilizando el setIndeterminate(...)
. Dar la retroalimentación del usuario del progreso cargado es una buena idea en diseño de interfaz de usuario 🙂
¡Espero que esto ayude!
- Indicador / icono de Android ExpandableListView siempre estirado
- ¿Cómo puedo ocultar / mostrar un elemento cuando se presiona un botón?