# stream speichern



## erdmulch (15. Okt 2011)

hallo zusammen,

habe folgendes Problem:
will mit dem mplayer von Linux einen radio stream anhören. funktioniert auch allesganz gut.
nun wollte ich eine Grafik drum herum packen, dass mein IP Radio besser zu bedienen ist. 
hab nun einen Button programmiert der den Stream aktiviert was auch einwandfrei funktioniert.
leider bricht nach ca 2min mein stream ab. Grund solll volgender sein:

"mit p.getInputStream() bzw. p.getErrorStream() kannst du die Streams lesen (oder einfach auch nur "den Buffer leeren"). Danach mit InputStreamReader und BufferedReader - oder was du auch immer willst - verarbeiten. Aber natürlich nur, wenn du die Daten verarbeiten willst"

leider weiß ich nicht was ich mit dieser aussage anfangen soll bzw. wie ich es umsetzen kann, kann mir da jemand helfen? leider funktioniert der untenstehende code nicht...weiß aber nicht was ich falsch mache


```
Process p = Runtime.getRuntime().exec(new String[] {"mplayer", "rtsp://mobilstream.antenne.de/antenne.sdp"});
			OutputStream out = p.getOutputStream();
			out.close();
```


----------



## VfL_Freak (15. Okt 2011)

Moin,

ääh - InputStream != OutputStream :noe:

Worum geht es denn nun genau ???:L

Gruß
Klaus


----------



## erdmulch (15. Okt 2011)

Ok, dies brachte aber auch nicht den gewünschten erfolg.
ich bin mit meinem Latein am Ende...


```
Process p = Runtime.getRuntime().exec(new String[] {"mplayer", "rtsp://mobilstream.antenne.de/antenne.sdp"});
			InputStream out = p.getInputStream();
			out.read();
```


----------



## Gast2 (15. Okt 2011)

out.read() liest dir genau ein byte, und das verarbeitest du auch nicht weiter.
Du brauchst natürlich eine Schleife in der du dann ein Stück liest, und das Stück direkt in ne Datei schreibst. Das machst du solange bis entweder der Stream zuende ist oder der User die Aktion abbricht.
Die erstellte Datei solltest du dann abspielen können.


----------



## erdmulch (15. Okt 2011)

hallo nochmals,

hab nun gedacht, dass ich es einfach in eine Datei hinein schreibe. Leider funktioniert es nicht.
ich denke, dass es an dem String read liegt, da es sich um einen Stream handelt.
bin im mom überfragt wie ich das anstellen soll, dass es geht, vielleicht hat von euch jemand eine Idee


```
try 
		{
			Process p = Runtime.getRuntime().exec(new String[] {"mplayer", "rtsp://mobilstream.antenne.de/antenne.sdp"});
			InputStream out = p.getInputStream();
            try{			
    			InputStreamReader inReader = new InputStreamReader(out);
    			BufferedReader buffReader = new BufferedReader(inReader);
    			String read = buffReader.readLine();
    			
    			StringBuffer strBuffer = new StringBuffer();
    			while ( read != null) 
    			{
    				strBuffer.append(read);
    			}
    			BufferedWriter buffWriter = new BufferedWriter( new FileWriter("/home/markus/Desktop/test.mp3"));
    			buffWriter.write(strBuffer.toString());
    			buffWriter.close();
    			
    		}catch(Exception err){
    			System.out.println(err);
    		}
		} 
		catch (IOException e) 
		{
		    e.printStackTrace();		    
		}
    }
```


----------



## Gast2 (15. Okt 2011)

http://www.java-forum.org/allgemeine-java-themen/125660-mplayer-java-einbinden.html#post815424
Beschränk dich doch bitte auf einen Thread.


----------

