walloudtn
Messages postés47Date d'inscriptionlundi 13 juin 2005StatutMembreDernière intervention22 août 2006
-
3 avril 2006 à 09:44
cs_nomad56
Messages postés54Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 avril 2006
-
8 avril 2006 à 10:21
Bonjour!
En fait,je veux afficher un flux video provenant d'une camera Axis dans un jPanel.J'ai déjà arrivé à le faire ,mais le problème que le flux video ne s'affiche pas tout dans le jPanel, c'est à dire qu'une seule partie du flux s'affiche.Lorsque j'augmente la taille du jPanel selon la résolution de la caméra j'obtient tout le flux dans le jPanel.Mais je veux réduire la taille du jPanel dans une taille précise et je veux que tout le flux s'affiche dedans.Comment je peux le faire svp?!C'est très urgent!merci d'avance
cs_RedDog
Messages postés50Date d'inscriptionlundi 7 avril 2003StatutMembreDernière intervention21 août 2013 3 avril 2006 à 19:02
Bonjour,
1 il te faut un objet composant simple comme par exemple
private Component viewVideo = null;
2 il te faut mettre utiliser ce composant comme container video
3 il te faut mettre ce composant dans un élément: JFrame, JPanel...
4 il te faut redimensionné ce dernier élément (.pack();) ou faire un gestionnaire de redim.
J'avais trouvé la source "javafr_source_24523" assez interressante pour ce cas de figure (afficher de la video), je t'invite à faire une recherche sur ce site pour trouver cette source ou une autre similaire. Par exemple, avec le mot clé "video player".
cs_nomad56
Messages postés54Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 avril 20061 3 avril 2006 à 19:12
je te conseille vivement de redimentionner le JPanel en fonction de la taille du flux plutot que l'inverse .... pke je débute la dedans aussi, et pour faire ce que tu veux ca me parait cho ... donc pour modif la taille du JPanel en fonction de la taille du flux essaie ca ... ( g pris de mon code mais faut surement adapter)
player .realize();
...
public void controllerUpdate(ControllerEvent ce)
{
if(ce instanceof RealizeCompleteEvent)
{
panelVideo.removeAll();
panelVideo.add(player.getVisualComponent(), BorderLayout.CENTER);
panelVideo.setVisible(true);
// this.pack();
this.updateUI(); // replace le this.pack des JFrame (ca fait un
// refresh en fait)
}
}
c surtout le this.updateUI(); qui te manquait je crois mais attention, ma classe est dérivée de JPanel la... si tu es dans une dérivation de JFrame, remplace par this.pack();
mais si tu veux vraiment garder la taille de ton JPanel, essaie un truc du genre:
Dimension dim = monPanel.getDimension; //(je connais pas les noms exacts)
puis tu colle ton flux video même si il est trop grand et tu test un this.pack/this.updateUI(); ca devrai redimentionner (=refresh)
si ca marche toujours pas, rajoute
monPanel.setDimension(dim)
puis this.pack/this.updateUI()
si après tout ca, ca gère pas comme tu veux, je peux te filer tout mon code ( j'ai fait un petit acquisiteur video de webcam, ca devrait marcher avec tous type de camera) et la voir comment j'ai fait car moi j'ai été obliger de modifier directement la taille du flux video en entrée .. et là .. c cho ...
cs_RedDog
Messages postés50Date d'inscriptionlundi 7 avril 2003StatutMembreDernière intervention21 août 2013 3 avril 2006 à 19:28
J'ajoute quelque chose, après un pack ou updateUI, il te sera facile de récupérer les valeurs hauteur largeur de ta video (par les propriétés du panel) et donc de pouvoir la redimensionner comme voulu en redimensionnant ce panel.
Et seulement après {composantVideo}.setVisible(true);
Voilà!
Vous n’avez pas trouvé la réponse que vous recherchez ?