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?
- FullScreen ImageSwitcher sin galería en Android
- Problemas con Gallery.getChildAt (int position)
- Utilice una barra de acción contextual personalizada para la selección de texto de WebView
- ¿Cómo evitar que ScrollView intercepte eventos de clic / toque de la vista detrás de él?
- Limpiar por defecto algunas toallitas con jQuery touchwipe
- Servicio Android Jelly Bean que recibe todos los eventos de toque
- Determinar qué vista se está tocando actualmente mientras el usuario mueve el dedo
- Compruebe la dirección que se lanzó en un evento de Movimiento android
- Pasar los toques a la vista bajo
- Custom onInterceptTouchEvent en ListView
- Ver sólo el registro de MotionEvent.ACTION_DOWN
- Vista ScrollView con niños, cómo interceptar desplazamiento condicional
- Detectar todos los eventos táctiles sin sobrepasar a dispatchTouchEvent ()?
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 ();
- ¿Cuál es el mejor lenguaje para la programación gráfica en tiempo real en Android?
- ¿Cómo puedo ejecutar la aplicación de cámara Android desde el shell de adb?