-
Source Media DVB ?
Bonjour,
Je tourne en rond depuis quelque jours à la recherche de l'URI magique. En effet, j'aimerai savoir si Java FX est capable de capturer le flux d'un périphérique d'acquisition telle une clé USB Tnt. En d'autre terme, existe-t-il une syntaxe permettant de décrire une source dvb comme on décrit une HTTP ?:calim2:
-
Sur Open a Media from InputStream, ils indiquent que la démarche serait probablement d'installer un URLHandler pour permettre de manipuler ce genre de protocoles. Voir URL.setURLStreamHandlerFactory()
Cependant la discussion liée au tour de JavaFX Media issues, ils semblent indiquer que ce n'est pas une solution suffisante pour contourner le problème. Cependant cette réponse était pour JavaFX 2.2. A tester si cela fonctionne dans JavaFX 8.
Comme la discussion dérive ensuite sur le fait que Image et Media ont des API différentes alors que ça ne devrait pas, sur le Jira c'est marqué pour être prévu pour JavaFX 9 dans [#RT-14938] Inconsistent API between Media and Image class cependant. De même, pour [#RT-26823] Media should support InputStream. Dans la discussion (lecture fortement recommandée) autour du second topic sur le JIRA (nécessite un compte mais comme ils sont en train de migrer sur le site de l'OpenJDK je ne sais pas si c'est toujours possible), différentes implémentations des classes ConnectionHolder et MediaInputStream sont fournies qui devraient permettre de remplacer les classes de bases dans l'API interne existante (oui c'est mal mais dans ce cas ca ne semble pas être possible de faire autrement).
L'autre option, qui est effectivement plus lourde est de mettre en place un serveur web (interne a l'app) pour capturer le média et qui fournit un flux http auquel Media pourra accéder.
-
C'est ce que je craignais. Aucune solution simple pour l'heure permettant d'exploiter une clé USB TNT que ce soit avec JavaFX ou Java Media Framework...
Merci pour voter réponse bouye.
Cependant, je vais marquer ce post comme résolu.
En effet, j'ai trouvé une solution de contournement très efficace grâce à une petite API que j'ai trouvé sur le net et qui fonctionne à merveille : VLCJ
Cette dernière me permet même de rester dans un environnement simple comme Swing puisqu'elle permet de récupérer une sous-classe de Canvas intégrable dans les éléments Swing.
Un travail admirable qui se charge de toute la couche JNA auprès des deux seules dll nécessaires, libvlc.dll et libcorevlc.dll.
Elle permet même d'exploiter les fichier listes de VLC (ça tombe bien, je venais d'en mettre un au point pour toutes les chaînes TNT de ma région).
:D