Server Client Audio

Eichelhäer

Bekanntes Mitglied
Hallo, ich habe es geschafft den Input eines Microhones in einen byteBuffer einzulesen und wieder auszugeben, also man spricht und hört sich gleichzeitig reden.
Mittlerweile habe ich auch einen ChatServer mit clients am laufen der bis auf die scrollbar ( alles von hand gemacht keine swing componenten) wunderbar läuft.
Nun möchte ich über denselben server sowie den client einen voice chat implementieren. Mein client besitzt beide Methoden sowohl vom Microphon einlesen als auch den sound ausgeben. Was auch für jeden client selbst funktioniert. Ähnlich wie mein textchat habe ich nun vor den mit dem microfon eingelesenen buffer an den server zu schicken, dieser schickt den buffer dann an die anderen clients und gibt ihn aus. Dabei vermeide ich mit entsprechenden variablen, dass der client sich nicht selbst reden hört, indem das eigene bufferpacket nicht an ihn zurückgesendet wird. Nun weiss ich nicht wie ich den buffer an den server schicken muss, so wie ich das mit dem reader/writer prinzip getan habe. Ich hatte dabei an einen AudioInputstream/AudioOutputstream gedacht aber iwie will das nicht so recht. Weiss da jemand hier was?
 

Robert Zenz

Top Contributor
Ich habe noch nie so etwas realisiert, also mit Sprache, aber ich denke die Funktion muesste die selbe sein wie mit Text, nur mit den Unterschied dass du nicht auf die Senden-Aktion des Benutzers wartest, sondern alle (aus meinem Hintern gezogen) 100ms alles schickst was du bis jetzt hast.

Also auf dem sprechenden Client nimmst du 100ms an Ton auf, schickst diese als "einfaches" Byte-Paket an die anderten Clients, und dort nimsmt du diese Nachricht einfach und schiebst sie in dein Audio-Geraet um sie wiederzugeben. Also der Netzwerk-Schicht ist eigentlich egal welche Daten sie transportiert, dass diese zu Audio werden entscheidet sich erst nach dem empfangen beim verarbeiten. Dabei bietet sich ein UDP-Netzwerkverkehr an, weil du dann pro Paket weniger Latenz heiszt (aber dafuer koennen die halt verloren gehen oder in der falschen Reihenfolge ankommen, aber das kann man auch mit einem Buffer auf dem Client loesen, den man ohnehin braucht.

Aber der Grundsatz ist, dass deiner Netzwerkschicht und Logik eigentlich egal ist was du da verschickst, also wenn du bereits Text verschicken kannst, kannst du auch bereits Audio, du musst nur beim verarbeiten nach dem empfangen etwas anderes machen.
 

Eichelhäer

Bekanntes Mitglied
Ok ich habe es geschafft mit dem Server. Dieser nimmt nun den bytestream über seinen DatagramSocket entgegen und sendet nur die bytes zurück zu den jeweiligen clients. Nun habe ich das Problem, dass das bekannte rauschen und eine art delay sowie ein leichter hall auf den lines liegt. Ich habe nun mit getControlls sowohl die Tartgetlines vom input, bei denen keine controlls gefunden werden konnten, als auch die source lines überprüft. Bei den source lines habe ich vier Controlls gefunden PAN,MUTE,BALANCE und MASTER GAIN. Ich habe nach geschaut und weiss was diese bedeuten. Ebenfalls auf der Seite von Oracle steht wenn man die REVERB controll hat kann mann den hall und delays über einen int sagen so manipulieren dass dieser eventuell weg ist. Un d was noch dort steht ist, das eine Line egal ob vom Mixer oder Port nicht zwangsweise über Controlls verfügt, und dass man diese dann halt nicht anpassen kann. Nun habe ich ein gängiges Audioformat 44100 16 2 mit dem das ganze eig ganz gut läuft also ich höre etwas nur anpassen über die Controlls kann ich iwie nicht. Weiss da jemand Rat?
 

Eichelhäer

Bekanntes Mitglied
Mittlerweile konnte ich erfolgreich PAN, BALANCE,MUTE und MASTERGAIN anpassen. _Alles was jetzt noch fehlt ist der Reverb und das delay innerhalb der Reverb Control. Noch was weiss jemand wie das mit den Ports funktioniert? Output: sourceline->mixer -> Port und input: Port->Mixer->targetline helfen mir nur geringfügig weiter.
 

Eichelhäer

Bekanntes Mitglied
Hi nochmal hier, ich habe noch eine Frage zu der Sound Api. Mittlerweile habe ich sound- und effektlautstärken eingebaut was auch soweit funktionier. Wie ist das aber nun mit einer Master oder Gesamtlautstärke? Unterstützt die Mixer Klasse sowas wie audio busses, um eine gruppe aus lautstärken zu kontollieren, oder muss man da umwege gehen?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Server Client Audio Allgemeine Java-Themen 0
TonioTec Api für Datenaustausch zwischen Client und Server Allgemeine Java-Themen 0
C Java RMI Client - Server Allgemeine Java-Themen 0
S Simples Client Server Setup in Java Allgemeine Java-Themen 4
C Hang Man Server Client Allgemeine Java-Themen 3
C Hang man mit Server/Client Allgemeine Java-Themen 2
M Checksummenprüfung bei Client Server kommunikation Allgemeine Java-Themen 3
E Socket Client-Server-Programmierung Allgemeine Java-Themen 44
T Java Streaming-Server & Streaming-Client Allgemeine Java-Themen 4
0 Lösungsweg Client Server Kommunikation Fehlermeldung ausgeben Allgemeine Java-Themen 12
D Client / Server Allgemeine Java-Themen 23
T JPA Entity im Client-Server-Umfeld Allgemeine Java-Themen 19
D Versuch Server - Client anwendung Allgemeine Java-Themen 9
T Welcher Server? JSP und Client-Anwendung Allgemeine Java-Themen 4
MQue Server- Thread Client Allgemeine Java-Themen 2
D design client server Allgemeine Java-Themen 10
O binärer Suchbaum mit client server., objekte speichern. Allgemeine Java-Themen 2
F Java Server VM/ Client VM Allgemeine Java-Themen 7
A Client/Server-Anwendung Allgemeine Java-Themen 3
T Proxys: Idee für den Callback vom Server zum Client? Allgemeine Java-Themen 3
G Performance Problem bei der Übertragung Server zum Client Allgemeine Java-Themen 3
H Datenbank an ein Java Client Server Programm anschliessen Allgemeine Java-Themen 3
B Java Discord bot auf ein Root Server? Allgemeine Java-Themen 1
javaBoon86 Email Server Connection Problem Allgemeine Java-Themen 1
Jose05 Speicherung auf einem Server Allgemeine Java-Themen 1
D Live-Scripting im Server Allgemeine Java-Themen 6
Monokuma Threadproblem mit Sockets und Server Allgemeine Java-Themen 7
T imagej-server NullPointerException Allgemeine Java-Themen 1
W Server-Thread schreibt nicht alle Dateien Allgemeine Java-Themen 6
B Datei/Ordner auf Server zugreifen/erstellen Allgemeine Java-Themen 2
M TomEE auf Windows Server 2016 installieren Allgemeine Java-Themen 4
bueseb84 Git : Mehrere Server verwenden Allgemeine Java-Themen 3
P Am Application Server - Selbe files aber trotzdem CNF Allgemeine Java-Themen 2
KeexZDeveoper Zugriff auf Methoden vom Server Allgemeine Java-Themen 7
J Java - hoher Ramverbraucht auf WTS Server Allgemeine Java-Themen 8
C TCP Server und BufferedReader Leerstring im Stream? Allgemeine Java-Themen 5
C Logfile upload zu einem externen filezilla sftp server Allgemeine Java-Themen 6
K Server mieten, Berechnungen darauf ausführen Allgemeine Java-Themen 14
Anfänger2011 Java Server oder lieber was anderes Allgemeine Java-Themen 16
F Best Practice Server und Clients Allgemeine Java-Themen 10
E JavaFX RMI extrem langsam wenn Server nicht läuft Allgemeine Java-Themen 5
D Best Practice Java Application Server , Docker oder was? Allgemeine Java-Themen 15
L Suche nach CalDav Server API Allgemeine Java-Themen 0
K Classpath JDBC Driver auf Server Allgemeine Java-Themen 4
J Programm meldet "Keine Rückmeldung" nach Verbindung zum Server Allgemeine Java-Themen 4
I Installer, der JAVA EE Server und DB installiert Allgemeine Java-Themen 10
M Kapselung JasperReports Server und Java Allgemeine Java-Themen 5
P Java Fehler auf Win2008 Server java.io.FilePermission IE8 Version JRE 1.7.0_51 Allgemeine Java-Themen 7
M Dateien aus einem Verzeichnis auf einem Server auflisten Allgemeine Java-Themen 5
C Mit Pc Awendungen auf Server starten Allgemeine Java-Themen 8
B Input/Output Server Startet, Jedoch Kein Output. Allgemeine Java-Themen 1
T Daten über port abfangen mit proxy server Allgemeine Java-Themen 12
R Fragen zu Server + UI Allgemeine Java-Themen 2
D Player Objekt - Frame über Server anzeigen lassen. Allgemeine Java-Themen 3
U AWT simulierter Tastendruck auf Virtual Server Allgemeine Java-Themen 7
Z Socket [Chatprogramm] Nachrichten vom Server anzeigen lassen Allgemeine Java-Themen 6
E Methoden Server Benutzer abfrage Allgemeine Java-Themen 2
N COM Server ansteuern / KISSsoft Allgemeine Java-Themen 3
N URLConnection - Server abgeschaltet Allgemeine Java-Themen 2
A Parser verursacht Speicherprobleme auf Server Allgemeine Java-Themen 2
T Mit Java auf Dateien zugreifen die auf einem Server liegen Allgemeine Java-Themen 5
J Problem beim Auslesen einer Datei vom Server Allgemeine Java-Themen 4
T jar Archiv auf Server ausführen Allgemeine Java-Themen 3
J Application Server Allgemeine Java-Themen 2
A Input/Output Applet-Zugriff auf PHP-Schnittstelle (externer Server) Allgemeine Java-Themen 22
C game-server GUI erstellen Allgemeine Java-Themen 13
Developer_X Java FTP - Ordner auf Server erstellen Allgemeine Java-Themen 7
C Java Server Pages Problem Allgemeine Java-Themen 6
T Gleichzeitige Zugriffe auf Daten auf dem Server Allgemeine Java-Themen 11
M Server-Responds testen, Code-Redundanz Allgemeine Java-Themen 3
C Primzahlen Server Allgemeine Java-Themen 3
K Server Daten Visualisieren Allgemeine Java-Themen 3
S FTP Gezippte Datei von FTP Server downloaden Allgemeine Java-Themen 24
T Zeit von einem Server/Webseite auslesen und in eigener GUI anzeigen Allgemeine Java-Themen 6
B verbindung mit exchange server Allgemeine Java-Themen 3
AlexSpritze Alle Domains oder FQDN von einem Server erfragen? Allgemeine Java-Themen 2
H SwingWorker statt Thread für einen Server Allgemeine Java-Themen 2
M Frage zum Auslesen einer Datei auf nem Server Allgemeine Java-Themen 4
ruutaiokwu MS Exchange Server 2003 Daten auslesen Allgemeine Java-Themen 2
Final_Striker Datei vom Server bekommen Allgemeine Java-Themen 2
H Server Threaded machen. Port-Problem Frage Allgemeine Java-Themen 2
W programm auf server Allgemeine Java-Themen 5
C Java Polling, Server Prozedur oder doch Datenbank? Allgemeine Java-Themen 4
N Daten auf Server kopieren Allgemeine Java-Themen 6
S Datei auf Server mit lokaler Datei vergleichen Allgemeine Java-Themen 4
J J2EE Server für EJB Container Allgemeine Java-Themen 8
I Persistenz ohne App-Server? Allgemeine Java-Themen 6
0 kein Java unter Server 2008 ? Allgemeine Java-Themen 3
G Proxy- Server setzen Allgemeine Java-Themen 2
G Preise am Server verändern Allgemeine Java-Themen 4
M Applet Servlet Kommunikation ein Problem bei externem Server Allgemeine Java-Themen 3
J Java zugriff auf Exchange Server Allgemeine Java-Themen 10
MQue FTP Server/ Datei ablegen Allgemeine Java-Themen 4
J java + rmi + not found in gnu.java.rmi.server Allgemeine Java-Themen 7
T Socket Server Anwendung - Empfang eines Byte-Arrays Allgemeine Java-Themen 7
P Server für Java- Programme Allgemeine Java-Themen 8
S SERVER.XML Allgemeine Java-Themen 3
G Gelöst: ZIP File vom FTP Server entpacken Allgemeine Java-Themen 3
M Textdatei auslesen / schreiben (Server) Allgemeine Java-Themen 9
B Möglichkeiten ein Java Programm auf einem Server auszuführen Allgemeine Java-Themen 30

Ähnliche Java Themen

Neue Themen


Oben