-
JMF multisession
Je developpe un logiciel d'audioconférence.
Quelqu'un a t'il deja rencontré des problemes sur l'ajout et le retrait d'utilisateurs d'une session multimedia (RTPManager) ?
En effet, lorsque je rajoute plusieurs personnes dans ma session, tout fonctionne, la communication entre les différentes personnes ne pose pas de probleme. Les problemes arrivent quand l'une des personnes sort de le conversation.
J'arrete et ferme le SendStream associé a la personne qui est partie (via les méthodes sStream.stop() et sStream.close() ), et la communication entre les autres machines s'arrete alors !
Je n'ai pas utilisé de clone de DataSource car je n'ai ici qu'une session multimedia (un seul RTPManager). Dois-je les utiliser ? Si oui, comment ?
merci d'avance a tous ceux et celles qui ont deja developpé ce genre d'appli et qui pourraient me filer un coup de main.
-
j'ai resolu mon probleme en faisant quelque chose de pas tres "joli", je retire tout le monde et je remet tout le monde sauf la personne que je voulai initialement retirer. c'est pas tres beau mais ca marche pas trop mal, on n'entend quasiment pas de coupure du son (ca ne gene pas la conversation du moins pour 3-4 personens impliquées dans la conversation, je n'ai pas essayé pour plus).
Par contre, j'ai un autre probleme, c'est pour créer plusieurs sessions (plusieurs RTPManager). En réception, tout marche sans probleme. Mais en émission, ca ne marche pas (ce n'est que les flux créés pour la derniere session créée qui subsistent) Je sais d'ou vient le probleme mais je n'arrive pas a le resoudre. Il me faut cloner le DataSource et donner un clone a chaque session. Est ce quelqu'un a deja fait ce genre d'operation ? Car je crée des clones mais aucun flux n'est émis.
Voici ce que je fais :
DataSource ds;
try {
ds = Manager.createDataSource(mediaLocator);
} catch (Exception e) {
System.err.println("Cannot create DataSource from: " + ml);
System.exit(0);
}
ds = Manager.createCloneableDataSource(ds);
if (ds == null) {
System.err.println("Cannot clone the given DataSource");
System.exit(0);
}
DataSource clone = ((SourceCloneable)ds).createClone();
Et ensuite j'utilise clone pour creer mes SendStream.
Merci d'avance a tous ceux qui pourront m'aider