Android MediaController intercepta todos los demás eventos táctiles

La mitad superior de mi aplicación tiene un VideoView con un MediaController debajo de él. La mitad inferior es una imagen con algunos botones. Mientras que el MediaController es visible, los botones a continuación no se pueden hacer clic. Es como si el MediaController está visible, intercepta todos los demás eventos de toque, incluso si no están dentro de los límites del MediaController .

¿Alguna idea alrededor de eso?

Puedes revisar mi respuesta al superar dispatchTouchEvent() para pasar clics a través de MediaController a un Button subyacente, pero supongo que hay algo mal con la forma de usar MediaController. ¿Puedes publicar tu diseño?

UPD: En realidad, huelga eso. Acabo de echar un vistazo al código de MediaController y resulta que crea una nueva Window para sí mismo. Es por eso que sus clics no se despachan – se envían a otra ventana. También, por lo que puedo decir del código del constructor , si inflas el MediaController vía xml (es decir, lo usas en un archivo de diseño y luego lo encuentras por id de tu código) – no creará la Window extra. Eso es raro, pero estoy seguro de que tenían razones para eso.

Por lo tanto, la solución es intentar usar MediaController en un archivo de diseño o ir con la solución de CommonsWare . Por favor, hágamelo saber cómo va en caso de que usted dé la cosa del xml una tentativa.

¿Alguna idea alrededor de eso?

No utilice MediaController . Cree su propia interfaz de usuario del controlador que aparece y se muestra según sea necesario. Mientras que este proyecto de muestra ya no puede funcionar completamente, como no he tocado en tres años, demuestra tener su propio panel de control que aparece en un toque y luego se va.

¿Podría proporcionar su código de instanciación VideoView y el código que utiliza para cambiar los MediaPlayers?

En cualquier caso, dudo que esto funcione bien porque VideoView instancia su propio MediaPlayer y lo usa para reproducir medios. (Ver VideoView.java )

Probablemente necesitará cambiar el VideoView por sí mismo, o crear un reemplazo para el VideoView usando su propia subclase de SurfaceView.

Tengo el mismo problema de cara, mi bloque de elementos de la interfaz de usuario debido a reproductor de medios, después de pasar 5 horas me dieron la solución

Acabo de reemplazar mediaPlayer.prepare () a mediaPlayer.prepareAsync ();

  • DrawerLayout con HorizontalScrollView en el menú de contenido
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.