[Urgent] Discussion à plusieurs en réseau local

kennyjava Messages postés 2 Date d'inscription jeudi 6 octobre 2005 Statut Membre Dernière intervention 17 mars 2006 - 15 mars 2006 à 23:13
kennyjava Messages postés 2 Date d'inscription jeudi 6 octobre 2005 Statut Membre Dernière intervention 17 mars 2006 - 17 mars 2006 à 07:33
Bonsoir à tous !

Dans le cadre d'un projet, je dois développer une partie d'application qui permet à plusieurs utilisateurs de discuter avec un micro et casque entre eux.
J'arrive à envoyer le son et à le recevoir sur un autre PC mais la réception est saccadée et régulière.

Le problème, sans compter celui la, c'est que je n'arrive pas à faire la même chose à plus de 2 !

Pour le faire entre 2 personnes, je récupère un tableau de bytes que j'envoi dans un OutputStream d'un Socket :

InetAddress adress = InetAddress.getByName("localhost");
Socket socket = new Socket(adress,11111);
OutputStream os = socket.getOutputStream();
while (thread != null) {
numBytesRead = line.read(data, 0, bufferLengthInBytes);
if (numBytesRead > 0){
os.write(data, 0, numBytesRead);
}
}

Pour plus que 2 personnes, j'ai essayé avec un MulticastSocket, etc... mais je n'entend aucun son.

Si vous pouvez m'aider... merci !

Voici les sources de ma partie :
FluxDeCapture --> c'est dans cette classe que ca envoie ...
http://webkenny.free.fr/Java/FluxDeCapture.java
ReceiveSound --> recoit le son et le lit (grace a une autre classe, mais elle ne pose pas problème).
http://webkenny.free.fr/Java/ReceiveSound.java

2 réponses

tucobouch Messages postés 194 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 1 mai 2009 50
16 mars 2006 à 23:22
Je vois juste un petit probleme : ton OutputStream, essaye de le remplacer par un BufferedOutputStream pour voir :
BufferedOutputStream os=new BufferedOutputStream(socket.getOutputStream(),taille_buffer);
Fait pareil pour la reception

Je pense que ça devrait résoudre le probleme de sacade.

Pour envoyer du son a plusieures personnes, tu envoi en MultiCast , as tu join les participant dans le groupe ? Sinon une autre méthode est d'envoyer en broadcast (uniquement valable si les participants sont sur le meme reseau local)
0
kennyjava Messages postés 2 Date d'inscription jeudi 6 octobre 2005 Statut Membre Dernière intervention 17 mars 2006
17 mars 2006 à 07:33
Merci !

Je vais aller essayer ça.
Pour le multicast, j'avais bien fait rejoindre les participants dans le même groupe.

Entre temps, j'ai trouvé une autre méthode. Je pense qu'elle ira très bien... plus facile pour moi. Mais j'essayerai le BufferedOutputStream aussi.

Merci encore !
0
Rejoignez-nous