Error de VideoView getCurrentPosition () en Acer Iconia A200

Tengo una aplicación con un VideoView en él, que establece un video para reproducir en el VideoView. En algún momento mientras se reproduce el video, se detendrá. Luego, después de que se haya detenido durante algún tiempo, comenzará a reproducir el vídeo de nuevo, pero buscará avanzar hasta el punto en el que se encontraría el vídeo si no se hubiera detenido. Así por ejemplo

El video comienza a reproducirse

El video se detuvo a los 6 segundos

El video se detiene durante 10 segundos

El video comienza a reproducirse de nuevo <— en este punto quiero que el video empiece a reproducirse en la marca de 16 segundos.

Para lograr este efecto he configurado sellos de tiempo para hacer las matemáticas necesarias para saber cuánto tiempo se detuvo el video, y luego cuando lo vuelvo a iniciar, llamo mVideoView.seekTo(timePlayed + timePaused);

Todo esto funciona según lo previsto en Toshiba Thrive y Motorola Xoom. Sin embargo en Acer Iconia A200 Parece que desde el punto que llamo seekTo () adelante el VideoView siempre volverá al mismo tiempo cuando llamo getCurrentPosition() . Para ilustrar esto, establezco un runnable que se dispara aproximadamente cada 1000ms que registra la posición actual. Aquí hay algo de la salida de eso:

 /**************** * These are from before it is paused/resumed * you can see that the current time is functioning * as expected. ******************/ Current Position = 0 Current Position = 734 Current Position = 1735 Current Position = 2703 Current Position = 3737 Current Position = 4738 Current Position = 5739 Current Position = 6740 Current Position = 7741 Current Position = 8742 Current Position = 9743 /********************************** * These are from the exact same runnable * after the video has been paused, and * started again after seekTo(). * The position is no longer increasing. * Note that the video is playing correctly on the screen * while these logs happen. **********************************/ Current Position = 23410 Current Position = 23410 Current Position = 23410 Current Position = 23410 

23410 es el tiempo exacto en que estoy pasando a seekTo (), así que parece que después de hacer esta llamada, el VideoView siempre devolverá lo que yo pase a él, no importa si realmente está jugando y la posición está avanzando.

¿Alguien más ha experimentado este error de VideoView / MediaPlayer antes? Vi algunas cosas en el grupo de problemas conocidos que estaban hablando de MediaPlayer devolver valores incorrectos para getCurrentPosition (), pero no encontró ningún lugar que sólo dejar de aumentar como este. La mayoría de los que vi, también estaban tratando de reproducir audio en lugar de vídeo.

Puede tener que ver con la cantidad de memoria libre del dispositivo. Si el carnero está bajo la actividad de fondo puede reiniciarse junto con su contador.

Lanzar y reajustar el videoplayer en el método de la onpause de la actividad y fijar otra vez en mtd de onstart de una actividad. Para seekto u debe utilizar el cronómetro para contener la sincronización del tiempo videoview.set del usuario en seekto al tiempo del cronómetro.

Tal vez sea un problema con la sobrecarga del hilo principal de la interfaz de usuario. Dado que el vídeo es un elemento de datos de alta y la icónica acer no es un gran dispositivo, podría causar algunos datos escasez, anomalías y, posiblemente, incluso estrellarse. Intente agregar el video usando AsyncTask.

  • VideoView no se inicia cuando está invisible
  • Android Video no se ajusta a la anchura en el retrato de la videovista y no ocupa la pantalla completa en el paisaje
  • ¿Cómo puedo reproducir vídeo en ListView como Instagram y Vine?
  • ¿Deshabilitar la solicitud de VideoView de AndroidAudioFocus al reproducir un video?
  • Mostrando la imagen de Gif animado en android usando VideoView
  • Reproductor multimedia con YouTube?
  • Evite la corrupción de Android VideoView al girar de nuevo al retrato
  • Android :: VideoView dentro de un ScrollView
  • Android VideoView error (1,16) y muestra la pantalla en negro
  • Android WebView transparente en la parte superior de VideoView
  • El botón de retroceso de Android no funciona mientras se reproduce vídeo en VideoView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.