Hi,
ich möchte einen MP3-Stream in einer Datei speichern. Das hat soweit auch funktioniert und ich habe den Code in einer eigenen Klasse gekapselt.
Aufruf:
Jedoch bekomme ich nun zu viele Daten in die Datei hinein bzw. es gibt Fehler beim Abspielen (Störende Geräusche, längere Abspieldauer als aufgenommen).
Der Code hat in der Hauptklasse jedoch ohne probleme funktoniert (ohne Abbruchbedingung, Start/Stop --> einfach nur in einer while-schleife empfangene Daten speichern)
Wo liegt das Problem?
MfG
ich möchte einen MP3-Stream in einer Datei speichern. Das hat soweit auch funktioniert und ich habe den Code in einer eigenen Klasse gekapselt.
Java:
class Recorder extends Thread{
URL surl = null;
InputStreamReader inread = null;
BufferedReader buff = null;
File output = null;
FileWriter fw = null;
InputStream in = null;
String stream = null;
boolean run = true;
public void run(){
while(run){
try{
//if(buff.ready() == true){
fw.write(buff.read());
//}
}
catch(Exception e){
System.out.println("Exception: " + e);
System.exit(0);
}
}
try{
fw.close();
buff.close();
inread.close();
in.close();
}
catch(Exception e){
System.out.println("Exception: " + e);
System.exit(0);
}
}
public Recorder(String _station){
stream = _station;
}
public void recordStream(){
try{
surl = new URL(stream);
in = surl.openStream();
inread = new InputStreamReader(in);
buff = new BufferedReader(inread);
output = new File("Test.mp3");
fw = new FileWriter(output);
}
catch(Exception e){
System.out.println("Exception: " + e);
}
//Header ausgeben
String cmd = "";
while(cmd.indexOf("icy-br") == -1){
try{
cmd = buff.readLine();
}
catch(Exception e){
System.out.println(e);
}
System.out.println(cmd);
}
run = true;
this.start();
}
public void stopRecordStream(){
run = false;
}
}
Aufruf:
Java:
Recorder r = new Recorder("http://dsl.tb-stream.net");
r.recordStream();
Jedoch bekomme ich nun zu viele Daten in die Datei hinein bzw. es gibt Fehler beim Abspielen (Störende Geräusche, längere Abspieldauer als aufgenommen).
Der Code hat in der Hauptklasse jedoch ohne probleme funktoniert (ohne Abbruchbedingung, Start/Stop --> einfach nur in einer while-schleife empfangene Daten speichern)
Wo liegt das Problem?
MfG