2010-11-30 19 views
12

Tengo una VideoView que está dentro de un scrollView. Cuando recorro scrollView, VideoView no se desplaza con él. Es como si su posición fuera fija. ¿Cómo puedo desplazar VideoView correctamente con el desplazamiento de todos los demás elementos en scrollView?Android :: VideoView dentro de ScrollView

+1

También estoy enfrentando el mismo problema. Alguien tiene la solución? –

+0

Esto parece ser un problema común. Estoy buscando una solución también. Aquí hay otra pregunta en caso de que uno de estos reciba respuesta: http://stackoverflow.com/questions/5896921/android-scrollview-having-videoview-is-giving-problem –

+0

VideoView hereda de SurfaceView, que cambia las reglas de desplazamiento comportamiento. Un SurfaceView es básicamente una escala sobre cualquier otra cosa que esté sucediendo, y parece que estás solo en lo que a actualizaciones se refiere. Consulte también esta pregunta, si es de alguna utilidad: http://stackoverflow.com/questions/1096618/android-surfaceview-scrolling –

Respuesta

11

La pantalla se divide generalmente en dos tuberías

  • marco de tuberías búfer - Este es es donde se muestra todos los gráficos. Todos los elementos de la pantalla UI van a esta línea
  • Tubería de búfer de video: aquí es donde se desvían sus datos de video.

Ahora, cuando declara una vista de superficie, ocupa un espacio en la pantalla de la IU indicando que es aquí donde se mostrará el video. Entonces, todos los demás elementos de la interfaz de usuario no podrán ocupar ese espacio.

Cuando se produce desplazamiento, la vista de superficie se moverá hacia arriba o hacia abajo dependiendo del evento de desplazamiento, pero el problema es que a la tubería de búfer de video no le importa lo que sucede en la canalización de búfer de cuadros que llena los datos de video en el espacio en el que se inicializó.

Así que a partir de ahora no se puede desplazar el video en Android ..

+0

Puede desplazar la vista de superficie sí, pero es posible que aparezcan problemas en dispositivos más antiguos. –

7

dijo Romain individuo en este Android issue:

Esto es una limitación conocida de VideoView. En su lugar, debe usar TextureView en Android 4.0 y superior.

0

Puede poner la vista de video dentro de un diseño con una vista vacía sobre él.

<RelativeLayout 
     android:id="@+id/lay_live_video" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:visibility="visible" > 

     <VideoView 
      android:id="@+id/videoview" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:layout_centerVertical="true" /> 

     <View 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="@android:color/transparent" /> 
    </RelativeLayout> 

Este código puede estar dentro de su vista de desplazamiento.

Lo siento por mi inglés, estoy aprendiendo;)

+0

¡No funciona en absoluto, en cualquier caso! para un video dentro de una vista de desplazamiento –

Cuestiones relacionadas