Hallo Leute,
ich möchte gerne eine kleine voice chat applikation schreiben,in der sich leute
in einem chatraum einlinken und kommunizieren können.
Wenn man auf einen button klickst, dann soll man etwas sagen können, was die anderen teilnehmer hören können.
Die Frage ist nun wie stell ich das an?
Wie ich sound vom mikrofon (standard)eingabe aufnehmen kann weiß ich
Ich hoffe mal das ist richtig, ausprobiert hab ichs noch nicht wirklich weil ich mir erstmal die theorie aneignen wollte
Also der Client hat etwas aufgenommen und schickt es nun über den Stream.
Auf der Gegensteite bekommt der Server das ganze.
Nun muss der Server die ganzen pakete sofort an die anderen Teilnehmer weiterleiten, oder?
Beim Server siehts dann so aus:
Nun muss der Client diese Pakete empfangen und sie abspielen.
Also auch hier wieder
Ist das bis hierhin alles korrekt?
Wie kann ich nun, alle pakete die beim client ankommen direkt abspielen?
Ist das irgendwie möglich?
Mit freundlichen Grüßen
Johnny
ich möchte gerne eine kleine voice chat applikation schreiben,in der sich leute
in einem chatraum einlinken und kommunizieren können.
Wenn man auf einen button klickst, dann soll man etwas sagen können, was die anderen teilnehmer hören können.
Die Frage ist nun wie stell ich das an?
Wie ich sound vom mikrofon (standard)eingabe aufnehmen kann weiß ich
Java:
....
BufferedOutputStream out = new BufferedOutputStream(socket.getOutputStream());
AudioFormat audioFormat = new AudioFormat(44100, .., );
DataLine.Info dataLineInfoRecv = new DataLine.Info(SourceDataLine.class, audioFormat);
SourceDataLine sourceDataLine = (SourceDataLine)AudioSystem.getLine(dataLineInfoRecv);
sourceDataLine.open(audioFormat);
sourceDataLine.start();
// Hier beginnt die aufnahme
// Nun schicken wir das ganze
int n = 0;
byte tmpBuffer[] = new byte[10000];
while(n != -1) {
n = targetDataLine.read(tmpBuffer, 0, tmpBuffer.length);
if(n > 0)
outStream.write(tmpBuffer, 0, n);
}
// Stoppen
//
sourceDataLine.drain();
sourceDataLine.close();
out.close();
Ich hoffe mal das ist richtig, ausprobiert hab ichs noch nicht wirklich weil ich mir erstmal die theorie aneignen wollte
Also der Client hat etwas aufgenommen und schickt es nun über den Stream.
Auf der Gegensteite bekommt der Server das ganze.
Nun muss der Server die ganzen pakete sofort an die anderen Teilnehmer weiterleiten, oder?
Beim Server siehts dann so aus:
Java:
...
n = inS.read(tmpBuffer, 0, tmpBuffer.length);
if(n > 0)
client[i].write(tmpBuffer, 0, n);
...
Nun muss der Client diese Pakete empfangen und sie abspielen.
Also auch hier wieder
Java:
n = in.read(....);
Ist das bis hierhin alles korrekt?
Wie kann ich nun, alle pakete die beim client ankommen direkt abspielen?
Ist das irgendwie möglich?
Mit freundlichen Grüßen
Johnny
Zuletzt bearbeitet: