2010-05-10 15 views
5

Estoy usando VideoView para mostrar un video. Estoy usando setOnPreparedListener y setOnCompletionListener para hacer cosas antes y después de que el video comience y termine.Android VideoView: detectar punto de tiempo en video

Me preguntaba cómo podría detectar algún punto del tiempo en el video. Por ejemplo, digamos que quiero escribir un registro en un archivo cuando el video se reprodujo por 10 segundos. ¿Cómo puedo detectar la marca de los 10?

Gracias Chris

Respuesta

5

Paso # 1: Uso postDelayed() o algo para controlar cada segundo más o menos.

Paso # 2: Compruebe getCurrentPosition() y vea si está cerca del punto de marcador deseado. Si es así, haz tu procesamiento.

Paso # 3: Enjabona, enjuaga, repite.

No hay ningún mecanismo para que Android te llame específicamente cuando se ha producido un cierto momento en el video, por lo que tienes que conformarte con un mecanismo de sondeo.

+1

Desde mi experiencia esto funciona hasta cierto punto, pero no es muy preciso. Tal vez +/- 500ms – justinl

+0

¿Existe una ventaja al usar postDelayed versus tener un temporizador? Simplemente verifique la posición actual. Me preguntaba si hay alguna ventaja de usar controladores frente a usar temporizadores en Android. –

+0

@ sleeping.ninja: los temporizadores requieren un hilo; 'postDelayed()' no. – CommonsWare

Cuestiones relacionadas