T
TheSunToucher
Gast
Hallo Java'isten,
ich habe begonnen einen Audio-Server zu schreiben der eine MP3 streamt. Ich bin auch rechtschnell und mit sehr wenig code zu einem ergebnis gekommen. Ich öffne einen ServerSocket und verbinde mich mit einem Audio-Player, dann höre ich auch die Musik, nur leider nicht komplett. Nach ca. 30 Sekunden hat der Server die komplette Datei gesendet und der Player springt im Lied mehrmals vorwärts un erreicht kurz danach das Ende des Songs.
Ich vermute das der Server die Datei so schnell er kann an den Client sendet und jedesmal wenn der Puffer des Players überläuft springt er im Lied nach vorn. Der Code, also der Teil en ich verdächtige, sieht so aus:
Kennt jemand einen Weg dieses Problem zu lösen oder muss ich ausrechnen wieviel ich in welchem Zeitraum streamen muss und das selbst time'en, also mit sleep() oder ähnliches?
Danke, Gruß
Tim
ich habe begonnen einen Audio-Server zu schreiben der eine MP3 streamt. Ich bin auch rechtschnell und mit sehr wenig code zu einem ergebnis gekommen. Ich öffne einen ServerSocket und verbinde mich mit einem Audio-Player, dann höre ich auch die Musik, nur leider nicht komplett. Nach ca. 30 Sekunden hat der Server die komplette Datei gesendet und der Player springt im Lied mehrmals vorwärts un erreicht kurz danach das Ende des Songs.
Ich vermute das der Server die Datei so schnell er kann an den Client sendet und jedesmal wenn der Puffer des Players überläuft springt er im Lied nach vorn. Der Code, also der Teil en ich verdächtige, sieht so aus:
Code:
Socket socket = serverSocket.accept();
OutputStream output = socket.getOutputStream();
[...]
InputStream input = new FileInputStream(file);
byte[] buffer = new byte[1024];
int offset = 0;
int read = 0;
while((read = input.read(buffer)) >= 0){
offset += read;
output.write(buffer);
}
input.close();
Kennt jemand einen Weg dieses Problem zu lösen oder muss ich ausrechnen wieviel ich in welchem Zeitraum streamen muss und das selbst time'en, also mit sleep() oder ähnliches?
Danke, Gruß
Tim