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 :

Client et serveur RTP


Sujet :

Java

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Client et serveur RTP
    Bonsoir
    je voulais créer une application java qui va permettre a un client de lire a distance une vidéo chez un serveur (a l'aide de RTP) mais le problème réside dans code du client l’ouverture de la session RTP
    Connected
    Cannot create the RTP Session: Can't open local data port: 22224
    Erreur null


    ======
    code
    package newclient;

    import javax.media.*;
    import javax.media.rtp.*;
    import javax.media.rtp.event.*;
    import javax.media.format.*;
    import java.io.*;
    import java.net.*;
    import javax.swing.*;

    public class Main
    {
    public static void main(String[] args)
    {
    //Adresse de la Source
    String sourceAddress = "rtp://127.0.0.1:22224/video/1";

    //Creation du MediaLocator avec l'adresse de la Source
    MediaLocator sourceLocator = new MediaLocator(sourceAddress);

    // Verification que la source existe dans le cas contraire, arret du programme
    if(sourceLocator == null)
    {
    System.out.println("no Source");
    System.exit(-1);
    }
    else
    {
    System.out.println("Connected");
    }

    // Declaration du Player
    Player player;
    try
    {
    // Creation du player réalisé à partir du MediaLocator de la source
    player = Manager.createRealizedPlayer(sourceLocator);
    System.out.println("Création du player à réaliser");

    // Demarrage du Player
    player.start();
    System.out.println("Demarrage du player réussie");

    // Creation d'une JFrame
    JFrame fenetre = new JFrame("Player");
    fenetre.setSize(160,140);

    // Ajout du Composant visuel du Player dans la fenetre (pour un flux vidéo)
    fenetre.getContentPane().add(player.getVisualComponent());
    fenetre.setVisible(true);
    }
    catch (NoPlayerException e)
    {
    System.out.println("Erreur " + e.getMessage());
    }
    catch (IOException e)
    {
    System.out.println("Erreur " + e.getMessage());
    }
    catch (CannotRealizeException e)
    {
    System.out.println("Erreur " + e.getMessage());
    }
    }
    }
    ==============
    package newserveur;

    import javax.media.*;
    import javax.media.rtp.*;
    import javax.media.format.*;
    import javax.media.control.*;
    import javax.media.protocol.*;
    import java.io.*;
    import java.net.*;

    public class Main {

    public static Processor configure(Processor p)
    {
    // Attendre tant que le Processor n'est pas configuré.
    while(p.getState() < Processor.Configured)
    {
    //Configuration du Processor
    p.configure();
    }

    return p;
    }

    public static void setSupportedFormat(Processor p)
    {
    // On met la description du contenu de sortie à RAW_RTP
    // pour limiter les formats supportés

    ContentDescriptor cd = new ContentDescriptor(ContentDescriptor.RAW_RTP);

    p.setContentDescriptor(cd);

    //On obtient les différentes pistes du processor
    TrackControl track[] = p.getTrackControls();

    for(int i = 0 ; i < track.length ; i++)
    {
    //on obtient les formats supportés pour cette piste
    Format suppFormats[] = track[i].getSupportedFormats();

    //Si il y a au moins un format supporté alors on met le premier
    if (suppFormats.length > 0)
    {
    track[i].setFormat(suppFormats[0]);
    }
    else
    {
    track[i].setEnabled(false);
    }
    }
    }

    public static Processor realize(Processor p)
    {
    // Attendre tant que le Processor n'est pas réalisé.
    while(p.getState() < Processor.Realized)
    {
    //Réalisation du Processor
    p.realize();
    }

    return p;
    }

    public static void demarre(Processor p)
    {
    //Demarrage du Processor
    p.start();
    }

    /**
    * @param args the command line arguments
    */
    public static void main(String[] args) {

    // TODO code application logic here
    //Entrée de l'adresse du fichier
    String fichierAdresse = "file://d:/b.avi";

    //Création du MédiaLocator à partir de ce fichier
    MediaLocator fichierLocator = new MediaLocator(fichierAdresse);

    //Declaration du Processor
    Processor fichierCessor = null;

    try
    {
    //Creation du Processor à partir du Medialocator
    fichierCessor = Manager.createProcessor(fichierLocator);

    fichierCessor = configure(fichierCessor);

    setSupportedFormat(fichierCessor);

    fichierCessor = realize(fichierCessor);

    demarre(fichierCessor);

    System.out.println("Creation du processor a partir du Medialocator réussie");
    }
    catch(IOException e)
    {
    System.out.println("Erreur : " + e.getMessage());
    }
    catch(NoProcessorException e)
    {
    System.out.println("Erreur : " + e.getMessage());
    }

    //Creation du DataSource correspondant au Processor
    DataSource fichierSource = fichierCessor.getDataOutput();

    //Adresse de Destination
    String outputAddress = "rtp://127.0.0.1:22224/video/1";

    //Creation du MediaLocator pour l'Adresse de destination
    MediaLocator outputLocator = new MediaLocator(outputAddress);

    try
    {
    //Creation du DataSink
    DataSink outputSink = Manager.createDataSink(fichierSource, outputLocator);
    //Ouverture du DataSink
    outputSink.open();
    //Demarrage du DataSink
    outputSink.start();

    System.out.println("Started");
    }
    catch(IOException e)
    {
    System.out.println("Erreur" + e.getMessage());
    }
    catch(NoDataSinkException e)
    {
    System.out.println("Erreur" + e.getMessage());
    }
    }
    }

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 40
    Points : 23
    Points
    23
    Par défaut
    Il faudrait que tu utilises les balises de code prévue pour ça, ton code sera plus lisible sur le forum.

    Ton port est peut être déjà utilisé par un autre programme ou protocole.

Discussions similaires

  1. aide pour application java client serveur RTP
    Par bladi2009 dans le forum Général Java
    Réponses: 0
    Dernier message: 09/05/2014, 18h13
  2. Réplication de base Client vers Serveur
    Par lil_jam63 dans le forum Administration
    Réponses: 3
    Dernier message: 18/06/2005, 21h57
  3. Accès client à un serveur SQL
    Par IADJOFOGUE dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/03/2005, 08h33
  4. [Java] Communication entre client et serveur
    Par danje dans le forum CORBA
    Réponses: 1
    Dernier message: 14/12/2004, 18h08
  5. RMI:Client Windows Serveur Unix
    Par abd21 dans le forum CORBA
    Réponses: 1
    Dernier message: 10/06/2004, 12h41

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