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");
}
} |
Partager