7
votes

Comment jouer de plusieurs vidéos dans une vue de liste à l'aide de MediaPlayer?

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> xxx pré>

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> xxx pré>

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" ... )


12 commentaires

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.


5 Réponses :


1
votes

Utilisez VideoView au lieu de ListView, cela peut fonctionner. Jetez un coup d'œil ici http://developer.android.com/reference/andrroid/widget/videoview.html


1 commentaires

Mais j'ai besoin d'une liste de réception.



1
votes

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.


3 commentaires

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 ? 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.



2
votes

Vous pouvez essayer ceci au lieu d'une bibliothèque, il est pris à partir d'un échantillon de Google sur github:

décode deux flux vidéo simultanément à deux textureviews.

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.

TODO: Considérez la fermeture lorsque l'écran est éteint, pour préserver la batterie.

Java:

DoubledecodeActivity.java < / p> xxx

xml:

activité_double_decode.xml xxx


1 commentaires

Ceci est un exemple de Google Grafika. Cela fonctionne la plupart du temps. Consultez mon autre donc question Si vous êtes curieux, pourquoi je ne peux pas l'utiliser.




0
votes

solution en cours: Je recommande Javacv / OpenCV pour avoir joué plusieurs vidéos à la fois à Java. Il prend en charge tous les formats.

tutoriel - http://ganeshtiwaridotcompadotnp.blogspot.co.nz/search / étiquette / opencv-javacv

JavaFX peut également jouer quelques formats vidéo .mp4.

Old Solution: - Même si JMF peut jouer plusieurs vidéos à la fois, il est sorti daté et n'est plus maintenu.


0 commentaires