In meiner Android App möchte ich einen Audio-Stream lesen und seine Shoutcast-Metadaten analysieren. Ich habe es funktioniert eine StreamProxy wie in NPR-Projekt mit: http://code.google.com/p/npr-android-app/source/browse/Npr/src/org/npr/android/news/StreamProxy.java?r=e4984187f45c39a54ea6c88f71197762dbe10e72java.net.SocketException: sendto fehlgeschlagen: EPIPE (Broken pipe) über eine Datenverbindung zu localhost
Das Problem ist, dass es über eine Datenverbindung nicht funktioniert. NPR hat das gleiche Problem.
Zusammenfassend läuft dieser Proxy als lokaler Webserver, der eine Schnittstelle zwischen der App und dem Remote-Stream herstellt. Es läuft auf localhost 127.0.0.1 mit einem generierten benutzerdefinierten Port. Wenn der Server die Stream-Daten liest, repliziert es auf die App, wie Sie bei der Linie 223 in StreamProxy zu lesen:
client.getOutputStream().write(buff, 0, readBytes);
jedoch diese Linie diese Ausnahme über eine Datenverbindung erzeugt:
java.net.SocketException: sendto failed: EPIPE (Broken pipe)
Ich bin kein Experte für Sockets und Streaming. Ich verstehe nicht, was in diesem Fall zwischen einem WLAN und einer Datenverbindung unterscheidet.
Hallo, auch ich einen Proxy-Kanal bin mit dem Streaming zu spielen. Es wirft diesen Fehler auf einige Geräte. Haben Sie dafür eine Lösung gefunden? – vijaykumarg
@ romain-piel Hast du jemals herausgefunden, worum es hier ging? Ich habe das gleiche Problem, kann aber keine Lösung finden. – Nick
nein: -/Es ist ein sehr komischer. Ich verwende jetzt eine Verbindung parallel zum Streaming.Nicht ideal, aber zumindest funktioniert es in jeder Situation –