[Video] [JMF][RTP]probleme d'affichage video
Bonjour,
J'ais fait une application Client/Serveur RTP où mon serveur capture ma WebCam puis l'envoi au le client qui doit NORMALEMENT l'afficher mais c'est la le hic. Je n'ais aucune erreur qui s'affiche et pourtant le client refuse d'afficher une image.
Pouvez-vous m'aider ?
voici le code du client :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| import java.io.IOException;
import java.net.InetAddress;
import java.util.Vector;
import javax.media.*;
import javax.media.format.*;
import javax.media.rtp.*;
import javax.media.rtp.event.*;
import javax.swing.JFrame;
public class ReceptionCam implements ReceiveStreamListener {
private Vector<String> st;
public ReceptionCam(String ip){
JFrame mainfra = new JFrame();
mainfra.setVisible(true);
//Instanciation du RTPManager
RTPManager VideoManager = RTPManager.newInstance();
VideoManager.addFormat(new VideoFormat(VideoFormat.H263_RTP),18);
try{
//Creation d'une SessionAddress pour l'adresse locale
SessionAddress add = new SessionAddress(InetAddress.getLocalHost(),40011);
//Initialisation du RTPManager à partir de cette SessionAddress
VideoManager.initialize(add);
//Creation d'une SessionAddress pour l'adresse source
SessionAddress add2 = new SessionAddress(InetAddress.getByName(ip),40000);
//Ajout de cette SessionAddress dans le RTPManager
VideoManager.addTarget(add2);
}catch(InvalidSessionAddressException e){
}catch(IOException e){
}
//Ajout du Listener de Reception de Stream dans le RTPManager
VideoManager.addReceiveStreamListener(this);
setStat("Client Started");
}
private void setStat(String m){
st = new Vector<String>();
st.addElement(m);
}
public Vector getInfo(){
return st;
}
public void update(ReceiveStreamEvent event) {
//Verification que l'event est un nouvel event
if(event instanceof NewReceiveStreamEvent){
setStat("New Reception");
//Nouveau Flux Recu obtenu
ReceiveStream rs = event.getReceiveStream();
try{
//Creation du Player sur ce flux
Player p = Manager.createRealizedPlayer(rs.getDataSource());
//Si le player a un composant visuel, alors creation d'une fenetre
if(p.getVisualComponent() != null){
JFrame fenetre = new JFrame();
fenetre.setSize(160,140);
fenetre.getContentPane().add(p.getVisualComponent());
fenetre.setVisible(true);
}
//Demarrage du Player
p.start();
}catch(NoPlayerException e){
}catch(CannotRealizeException e){
}catch(IOException e){
}
}
}
/**
*Test
* @param args
*/
public static void main(String[] args) {
// TODO Raccord de méthode auto-généré
new ReceptionCam("localhost");
}
} |