[Java] [JMF] lire une vidéo sous forme de byte array?

lire une vidéo sous forme de byte array? [Java] [JMF] - Java - Programmation

Marsh Posté le 23-08-2005 à 15:53:27    

Salut les gens,
 
J'ai un soucis avec JMF et je ne suis pas sur de savoir comment régler le pb.
Avec un protocole réseau maison je récupère des fichiers sous forme de byte[]. Pour les images ou le texte je les affiche ensuite avec un TextArea ou un Canvas (je dois utiliser AWT) sans soucis. Mais pour la vidéo je dois passer par Manager.createPlayer qui prend en paramètre soit une URL (loupé), soit un MediaLocator (apparemment c'est proche de l'URL donc encore loupé) ou encore un DataSource (sur quoi je ne connais rien et ne trouve pas grand chose en rapport avec mon byte[]).
 
Ca m'a pourtant l'air d'etre un besoin assez banal, de créer un player à partir d'un byte array. Vous auriez une idée/expérience :??:
 
Merci d'avance.
 [:goueg]

Reply

Marsh Posté le 23-08-2005 à 15:53:27   

Reply

Marsh Posté le 23-08-2005 à 16:13:14    

Ecrit ton fichier sur le disque dur et utilise un object FileDataSource

Reply

Marsh Posté le 23-08-2005 à 16:18:05    

c'est une solution un peu bourrine... surtout si je veux faire la même chose sous J2ME avec Mobile Media API à la place de JMF (je n'aurai pas forcément les droits d'écriture sur le filesystem du téléphone portable).
 
C'est une solution qui passe pour un PC, mais quelqu'un aurait une autre idée?
(Merci bartleby)

Reply

Marsh Posté le 23-08-2005 à 16:43:31    

Je t'en prie :D !
 
C'est quoi ton protocole maison au fait ?

Reply

Marsh Posté le 23-08-2005 à 16:50:28    

Je viens de regarder la doc de JMF, a priori ce que ferais, c'est utiliser la methode createPlayer(MediaLocator sourceLocator).
 
Et comme tu utilises un protocole maison, j'ecrirais deux classes: une qui implemente MediaLocator, avec ton protocole et une qui implemente DataSource, avec le nom et un package conforme a ce qui est decrit dans l'algorythme de la methode: "createPlayer(MediaLocator sourceLocator)."
 
Maintenant, ca m'etonne que tu puisses pas utilser le constructeur avec l'URL.....  

Reply

Marsh Posté le 23-08-2005 à 16:52:49    

Citation :

Je t'en prie :D !
 
C'est quoi ton protocole maison au fait ?


C'est un truc développé par la boite où je suis stagiaire, qui permet de bien contrôler la charge réseau.
 
Merci pour le up [:neuf]
 
edit: bon c'est + qu'un truc c'est un Framework [:dawa]


Message édité par goueg le 23-08-2005 à 16:58:45
Reply

Marsh Posté le 23-08-2005 à 16:57:22    

bartleby a écrit :

Je viens de regarder la doc de JMF, a priori ce que ferais, c'est utiliser la methode createPlayer(MediaLocator sourceLocator).
 
Et comme tu utilises un protocole maison, j'ecrirais deux classes: une qui implemente MediaLocator, avec ton protocole et une qui implemente DataSource, avec le nom et un package conforme a ce qui est decrit dans l'algorythme de la methode: "createPlayer(MediaLocator sourceLocator)."
 
Maintenant, ca m'etonne que tu puisses pas utilser le constructeur avec l'URL.....


Ah, mais le soucis c'est que je m'emballe en parlant de protocole, mais aujourd'hui on ne peut encore l'utiliser que comme Framework, en incluant ses API. Il n'y a pas encore d'URL permettant de spécifier qu'on veut utiliser ce framework. Et qui dit pas d'URL dit pas de constructeur avec URL [:kunks] , tout ce que je récupère aujourd'hui c'est un byte[].

Reply

Marsh Posté le 23-08-2005 à 17:24:52    

Pour recuperer un byte[], tu utilises un object fourni par le framework, tu passes certainement des parametres a cet object pour identifier ton fichier...
Cet object utilise forcement une connection vers ton framework.
Regarde comment il se connecte, decompile l'object au besoin avec djjava...et tiens nous au courant...

Reply

Marsh Posté le 23-08-2005 à 17:35:38    

MMh je ne pense pas que ce soit la piste à explorer, mon application (coté client) appelle une application coté serveur utilisant le même framework et je n'ai donc pas d'URL identifiant le fichier chez le serveur.
Et si j'en avais une, je ne pourrais rien en faire puisque ce n'est pas un serveur HTTP (ni FTP, RTP...), donc une URL incompréhensible par JMF.

Reply

Marsh Posté le 23-08-2005 à 17:55:52    

Bin justement tu fais ca comment:
 
"mon application (coté client) appelle une application coté serveur"
 
RMI ?

Reply

Marsh Posté le 23-08-2005 à 17:55:52   

Reply

Marsh Posté le 23-08-2005 à 18:12:35    

en utilisant un objet du Framework dont je parlais :)
Cet objet va utiliser un moyen ou l'autre selon le matériel visé et l'architecture réseau.
 
J'ai trouvé un exemple de ce que je cherchais, qui marche apparemment pour du MPEG 1, et qu'il faut modifier pour du AVI/WAV/etc... ici (le code est en bas):
http://archives.java.sun.com/cgi-b [...] 31838&I=-3


Message édité par goueg le 23-08-2005 à 18:13:57
Reply

Marsh Posté le 23-08-2005 à 21:54:06    

goueg a écrit :

Citation :

Je t'en prie :D !
 
C'est quoi ton protocole maison au fait ?


C'est un truc développé par la boite où je suis stagiaire, qui permet de bien contrôler la charge réseau.
 
Merci pour le up [:neuf]
 
edit: bon c'est + qu'un truc c'est un Framework [:dawa]


 
euh, bien controler la charge réseau en passant toute une video dans un byte[] ? [:pingouino]
 
bon sinon, ByteArrayInputStream, pê, si DS ou autre prennent une inputstream?
ou ça? http://www.extollit.com/isdsjmf.php


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 24-08-2005 à 10:10:56    

> euh, bien controler la charge réseau en passant toute une video dans un byte[]?
 
oui bon ca, c'est l'utilisation que j'en fais pour des tests ;) et puis je récupère mon byte[] en plusieurs fois.
 
Le lien que tu donnes a l'air pas mal, merci :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed