IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

connexion avec une camera IP


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 19
    Par défaut connexion avec une camera IP
    bonjour,
    je veux communiquer avec une camera IP,et faire visualiser le flux video dans mon jFrame..voici mon code mais je nesais pas ou est le probleme..l'exécution se fait normalement sans erreurs mais rien ne s'affiche..pouvez vous m'aider?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
     
    import java.net*;
    import com.sun.image.codec.jpeg*;
    import java.io*;
    import java.awt*;
    import java.awt.event*;
    import java.awt.image*;
    import javax.swing*;
     
     
    public class AxisCamera extends JPanel implements Runnable {
    public boolean useMJPGStream = true;
    public String jpgURL="http://your-ip-here/axis-cgi/jpg/image.cgi?resolution=352x240";
    public String mjpgURL="http://your-ip-here/axis-cgi/mjpg/video.cgi?resolution=352x240";
    DataInputStream dis;
    private Image image=null;
    public Dimension imageSize = null;
    public boolean connected = false;
    private boolean initCompleted = false;
    HttpURLConnection huc=null;
    Component parent;
     
    /** Creates a new instance of AxisCamera */
    public AxisCamera (Component parent_) {
    parent = parent_;
    }
     
    public void connect(){
    try{
    URL u = new URL(useMJPGStream?mjpgURL:jpgURL);
    huc = (HttpURLConnection) u.openConnection();
     
     
     
     
     
     
     
    //System.out.println(huc.getContentType());
    InputStream is = huc.getInputStream();
    connected = true;
    BufferedInputStream bis = new BufferedInputStream(is);
    dis= new DataInputStream(bis);
    if (!initCompleted) initDisplay();
    }catch(IOException e){ //incase no connection exists wait and try again, instead of printing the error
    try{
    huc.disconnect();
    Thread.sleep(60);
    }catch(InterruptedException ie){huc.disconnect();connect();}
    connect();
    }catch(Exception e){;}
    }
     
    public void initDisplay(){ //setup the display
    if (useMJPGStream)readMJPGStream();
    else {readJPG();disconnect();}
    imageSize = new Dimension(image.getWidth(this), image.getHeight(this));
    setPreferredSize(imageSize);
    parent.setSize(imageSize);
    parent.validate();
    initCompleted = true;
    }
     
    public void disconnect(){
    try{
    if(connected){
    dis.close();
    connected = false;
    }
    }catch(Exception e){;}
    }
     
    public void paint(Graphics g) { //used to set the image on the panel
    if (image != null)
    g.drawImage(image, 0, 0, this);
    }
     
    public void readStream(){ //the basic method to continuously read the stream
    try{
    if (useMJPGStream){
    while(true){
    readMJPGStream();
    parent.repaint();
    }
    }
    else{
    while(true){
    connect();
    readJPG();
    parent.repaint();
    disconnect();
     
    }
    }
     
    }catch(Exception e){;}
    }
     
     
    public void readMJPGStream(){ //preprocess the mjpg stream to remove the mjpg encapsulation
    readLine(3,dis); //discard the first 3 lines
    readJPG();
    readLine(2,dis); //discard the last two lines
    }
     
    public void readJPG(){ //read the embedded jpeg image
    try{
    JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(dis);
    image = decoder.decodeAsBufferedImage();
    }catch(Exception e){e.printStackTrace();disconnect();}
    }
     
    public void readLine(int n, DataInputStream dis){ //used to strip out the header lines
    for (int i=0; i<n;i++){
    readLine(dis);
    }
    }
    public void readLine(DataInputStream dis){
    try{
    boolean end = false;
    String lineEnd = "\n"; //assumes that the end of the line is marked with this
    byte[] lineEndBytes = lineEnd.getBytes();
    byte[] byteBuf = new byte[lineEndBytes.length];
     
    while(!end){
    dis.read(byteBuf,0,lineEndBytes.length);
    String t = new String(byteBuf);
    //System.out.print(t); //uncomment if you want to see what the lines actually look like
    if(t.equals(lineEnd)) end=true;
    }
    }catch(Exception e){e.printStackTrace();}
     
     
    }
    public void run() {
    connect();
    readStream();
    }
     
     
    public static void main(String[] args) {
    JFrame jframe = new JFrame();
    jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    AxisCamera axPanel = new AxisCamera(jframe);
    new Thread(axPanel).start();
    jframe.getContentPane().add(axPanel);
    jframe.pack();
    jframe.show();
    }
     
     
    }

    merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 139
    Par défaut
    C'est ta classe qui doit hériter de JFrame, et tu dois déclarer un objet JPanel dans le constructeur de la classe. Dans ce constructeur, il faut ajouter au JPanel par la méthode add les composants graphiques, et dans le main il suffit de faire appel à ce constructeur.


    Voici un exemple :

    http://pagesperso-orange.fr/isabelle...va/jframe.html

Discussions similaires

  1. connexion avec une camera IP
    Par nesrine18 dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 30/03/2010, 12h19
  2. connexion avec une camera IP
    Par nesrine18 dans le forum NetBeans
    Réponses: 1
    Dernier message: 30/03/2010, 11h10
  3. [VB6]Problème connexion avec une base ACCESS
    Par mcay dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 15/05/2006, 17h47
  4. problème de connexion avec une base firebird
    Par vbcasimir dans le forum Bases de données
    Réponses: 1
    Dernier message: 30/05/2005, 11h40
  5. [WSAD5] Connexion avec une base Lotus
    Par mickey dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 11/03/2004, 08h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo