boris11y382
-
15 mars 2013 à 21:22
BunoCS
Messages postés15472Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention25 mars 2024
-
18 mars 2013 à 21:04
je m'appelle boris et je veux développer une application client serveur pour le stream vidéo en java avec la jmf mais je butte sur rien en fait mais ca ne marche pas au fait voici mon code
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:/camera.mpg";
//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://192.168.11.55:99/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();
public class Main
{
public static void main(String[] args)
{
//Adresse de la Source
String sourceAddress = "rtp://192.168.11.55:99/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
{ System.out.println("création du player");
// 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());
}
}
}
lorsque je compile le serveur se lance bien et le client aussi mais une fois qu'il est connecté sur la rtp de mon serveur il ne se passe plus rien . S'il vous plait aidez moi je n'y comprend plus rien
l'erreur revient au niveau de //Creation du Processor à partir du Medialocator
fichierCessor = Manager.createProcessor(fichierLocator);
dans la classe serveur
et parfois ca ne renvoie rien