J'essaie de mettre en œuvre la vue de la liste avec des vidéos comme il s'agit d'éléments. J'utilise Ce projet pour afficher la vidéo sur la vue Texture. Il utilise MediaPlayer en dessous. Il échoue (la plupart du temps) lors du chargement de deux vidéos en même temps.
L'erreur que je reçois est: p> et cela se produit également lorsque le fichier est chargé à partir du disque P> dans la pièce de traitement des erreurs J'ai essayé de réinitialiser l'URL. Ensuite, je reçois surtout p> erreur. Ce qui n'est pas clair pour moi, c'est que définir une vidéo arbitraire du Web fonctionnera mais réessayera la même URL échouera. P> donc à Onerrorlistener: P> textureView.setVideo("http://different.video" ... )
5 Réponses :
Utilisez VideoView au lieu de ListView, cela peut fonctionner. Jetez un coup d'œil ici http://developer.android.com/reference/andrroid/widget/videoview.html p>
Mais j'ai besoin d'une liste de réception.
Cette question a déjà plusieurs réponses ici: stackoverflow.com/questions/31532893/i-want-a-display-multiple-video-in-listview-utilisateur-video-but-notable-a-do- Ceci . À moins que votre problème soit différent ou plus spécifique, ce sujet sera marqué comme un duplicata. P>
Les non de ces réponses sont en réalité acceptées ou ont une application à mon problème.
@wonglik Votre problème concerne ListView, non? Ou voulez-vous dire une vue liste i>? S'il s'agit de ListView, pourriez-vous clarifier la manière dont votre problème diffère de celui dans le lien que j'ai donné?
Mon problème consiste à jouer simultanément deux vidéos qui se produisent sur la vue de la liste. Ils pourraient aussi bien être dans la linearlayout et le problème serait exactement le même.
Vous pouvez décode deux flux vidéo simultanément à deux textureviews.
p>
Une caractéristique clé est que les décodeurs vidéo ne s'arrêtent pas lorsque l'activité est redémarrée dû
à un changement d'orientation. Ceci est de simuler la lecture d'un flux vidéo en temps réel. Si
l'activité est une pause parce qu'elle est "finie" (indiquant que nous quittons l'activité
Pour une durée non sévère), les décodeurs vidéo sont fermés.
p>
TODO: strong> Considérez la fermeture lorsque l'écran est éteint, pour préserver la batterie. P> Java: P> DoubledecodeActivity.java strong> < / p> xml: p>
Ceci est un exemple de Google Grafika. Cela fonctionne la plupart du temps. Consultez mon autre donc question a > Si vous êtes curieux, pourquoi je ne peux pas l'utiliser.
Ajoutez tous vos chemins vidéo dans le tableau ou l'arrayage et implémentez mediaPlayer.setonmediAplayCompletInlistener, lorsque le support sera lu, cette interface sera appelée à partir d'ici initialise une nouvelle instance de lecteur multimédia fournissant de nouveaux supports et appelez démarrage () P>
Je vais juste vous dire la logique, j'espère que cela fonctionnera p>
Chose est que ces vidéos soient bouclées. Donc, lorsque le crochet d'achèvement est appelé, je vous retrouve simplement au début et à la lecture. À côté de l'idée originale, c'était de lire une vidéo chaque fois qu'il est visible à l'écran. Le problème est de lire des vidéos simultanément et il semble qu'il pourrait être impossible avec MediaPlayer
J'ai trouvé quelque chose pour vous qui peut vous aider et lors de la recherche d'une solution, j'ai également rappelé une nouvelle que certains téléphones Samsung haut de gamme peuvent jouer plusieurs fichiers vidéo et que j'ai également vu pendant quelques années de rafraîchissements, donc il dépend donc totalement du matériel. .. Stackoverflow.com/a/10161316/5479863
solution en cours: Je recommande Javacv / OpenCV pour avoir joué plusieurs vidéos à la fois à Java. Il prend en charge tous les formats. P>
tutoriel - http://ganeshtiwaridotcompadotnp.blogspot.co.nz/search / étiquette / opencv-javacv p>
JavaFX peut également jouer quelques formats vidéo .mp4. p>
Old Solution: - Même si JMF peut jouer plusieurs vidéos à la fois, il est sorti daté et n'est plus maintenu. P>
essayez-vous d'obtenir plusieurs vidéos pour réellement * jouer en même temps dans une liste de liste? Ou voulez-vous simplement les charger et les préparer à la lecture (une à la fois) si l'utilisateur les recule?
J'essaie de les jouer immédiatement lorsque je suis visible mais je suis correct pour retarder l'autre commentaire de l'autre vidéo si ce serait la contrainte.
@Yvette, si deux lignes apparaissent à l'écran (99% du temps), il essaiera de jouer simultanément.
@Yvette Idéalement, les deux joueraient. Ils n'ont pas besoin de commencer exactement en même temps, mais si deux vidéos correspondent à l'écran, les deux devraient jouer
@Yvette: pour des raisons ux. Il n'a aucun sens pour l'utilisateur de cliquer sur Démarrer sur chaque vidéo. Juste comme dans la vigne. Et puisque ces vidéos sont principalement horizontales, la plupart du temps, il y aura plus d'une sur l'écran.
@Vette ils sont désagréables lorsque des mélanges sonores. Je sourdine les joueurs donc ce n'est pas le problème ici.
Que diriez-vous de créer un autre fil pour jouer la vidéo?
Ne pensez-vous pas que c'est la liste qui fait défaut votre parti ?? Je veux dire, pensez-y.
@Elltz Lecture de la vidéo dans une liste est un modèle UX bien établi. Juste vérifier la vigne ou fb. ListView n'est pas un problème ici.
@RandyKayudhistia Il n'a pas aidé. Il semble que MediaPlayer ne puisse pas gérer deux vidéos à peu près au même moment.
@wonglik toute chance pour que cela fonctionne? Si oui, veuillez partager avec nous.
@MateUsgondim Je n'ai pas réussi à jouer simultanément toutes les vidéos. Il semble que MediaPlayer n'est pas content de cela. Ma promenade était d'arrêter d'autres vidéos et de jouer celui qui est dans la plupart des positions centrales de l'écran.