9
votes

Android MediaController intercepte tous les autres événements tactiles

La moitié supérieure de mon application a un videoView avec un mediacontroller sous celui-ci. La moitié inférieure est une image avec des boutons. Bien que le mediacontroller est visible, les boutons ci-dessous ne sont pas cliquables. C'est comme si le MediaController est visible, il intercepte tous les autres événements tactiles, même s'ils ne sont pas dans les limites du MediaController . .

Une idée autour de cela?


3 commentaires

Pourriez-vous nous donner une idée de la mise en page XML de votre application?


Je n'ai pas commencé cette Bounty Btw. Je devrais creuser mes projets pour trouver le XML


Il y a une question fortement similaire: Stackoverflow.com/ Questions / 12022117 / ... Mais puisqu'aucune réponse n'a été acceptée là-bas, signalant que celui-ci en double n'a pas de sens.


4 Réponses :


1
votes

Pourriez-vous fournir votre code d'instanciation VideoView et le code que vous utilisez pour éteindre les médiasPlayers?

Dans tous les cas, je doute que cela fonctionne bien car la vidéoView instane son propre MediaPlayer et l'utilise pour jouer aux médias. (Voir VideoView.java )

Vous auriez probablement besoin de sortir de la vidéoView elle-même ou de créer un remplacement pour la vidéoOvisieView à l'aide de votre propre sous-classe de la supercalaire View.


0 commentaires

8
votes

Une idée autour de cela?

Ne pas utiliser mediacontroller . Créez votre propre contrôleur ui que vous affichez et affichez au besoin. Tandis que Cet exemple de projet ne peut plus fonctionner complètement, car je n'ai pas touché depuis trois ans, il montre avoir votre propre panneau de contrôleur qui apparaît sur une touche puis s'en va.


2 commentaires

Est-ce une recommandation d'éviter d'utiliser MediaController en général, ou simplement dans des situations où l'UI a besoin de l'interface utilisateur pour continuer à fonctionner?


@Spinner: Eh bien, cela doit être évité si vous voulez des clics sur le reste de l'interface utilisateur pour travailler. Au-delà de cela, j'ai vérifié, mediacontroller était un peu boiteux d'un point de vue de l'interface utilisateur et de la fonctionnalité, de toute façon, vous êtes probablement mieux mieux avec autre chose. Cela étant dit, si cela ne vous dérange pas mediacontroller effectivement modal, et que vous souhaitez l'utiliser, allez à l'avance.



12
votes

Vous pouvez consulter Ma réponse sur le remplacement DisPatchtouchevent () pour passer clique sur mediacontroller à un bouton sous-jacent , mais je suppose que quelque chose ne va pas avec la façon dont vous utilisez medialistroller. Pouvez-vous poster votre mise en page?

upd: En fait, frappez cela. Je viens de regarder MediaController code et il s'avère qu'il crée une nouvelle fenêtre pour elle-même . C'est pourquoi vos clics ne sont pas expédiés - ils sont expédiés à une autre fenêtre. Aussi, autant que je puisse dire au Code de constructeur , si vous gonflez le MediaController via XML (c.-à-d. Utilisez-le dans un fichier de mise en page, puis il suffit de le trouver par ID de votre code) - il ne créera pas la fenêtre supplémentaire . C'est bizarre, mais je suis sûr qu'ils avaient des raisons pour cela.

Donc, la solution consiste à essayer d'utiliser MediaController dans un fichier de mise en page ou d'aller avec Solution de Belware . S'il vous plaît, laissez-moi savoir comment cela se passe au cas où vous donneriez une erreur XML un essai.


6 commentaires

Contrôleur multimédia "Le moyen d'utiliser cette classe est de l'instantimer de manière programmative ". L'utiliser dans une mise en page semble causer un crash avec une exception nulle pointer


@Castbash Fonctions telles que Show () et Masquer () n'ont aucun effet lorsque MediaController est créé dans une mise en page XML - de sorte que le scénario est également valide. En outre, ils n'auraient pas fait le constructeur pour XML en premier lieu. A quel moment le NPE se produit-il?


Il s'est écrasé pendant SetUnchorView . Je l'ai supprimé, mais maintenant ça ne présente pas


même problème ici casebash - avez-vous trouvé une solution?


@Ivanbartsov Thanx pour le pointant sur cette sortie ... Je ne peux même pas croire que le "MediaController" est tellement conçu ...


@sMitalm Ah, le sentiment génial d'avoir toujours reçu merci une demi-année plus tard ... content de pouvoir aider, assurez-vous de uplifier la réponse;)



0
votes

J'ai le même problème, mon bloc d'élément UI en raison du lecteur multimédia, après avoir passé 5 heures, j'ai eu une solution

Je viens de remplacer mediaplayer.prepare () à mediaplayer.prepareeSync ();


0 commentaires