Nella mia app per Android voglio leggere un flusso audio e analizzare i suoi metadati shoutcast. ho ottenuto lavorando con uno StreamProxy come nel progetto NPR: http://code.google.com/p/npr-android-app/source/browse/Npr/src/org/npr/android/news/StreamProxy.java?r=e4984187f45c39a54ea6c88f71197762dbe10e72java.net.SocketException: sendto non riuscito: EPIPE (pipe interrotta) su una connessione dati a localhost
Il problema è che non funziona tramite una connessione dati. NPR ha lo stesso problema.
Per riassumere, questo proxy è in esecuzione come server Web locale, creando un'interfaccia tra l'app e lo stream remoto. Funziona su localhost 127.0.0.1 con una porta personalizzata generata. Quando il server sta leggendo i dati di flusso, si replica per l'applicazione come potete leggere in linea 223 in StreamProxy:
client.getOutputStream().write(buff, 0, readBytes);
Tuttavia quella linea produce questa eccezione attraverso una connessione dati:
java.net.SocketException: sendto failed: EPIPE (Broken pipe)
Non sono un esperto di prese e streaming. In questo caso, non capisco cosa faccia differenza tra un wifi e una connessione dati.
Ciao, anche io sto usando un canale di proxy per riprodurre lo streaming. Sta generando questo errore su alcuni dispositivi. Hai trovato qualche soluzione per questo. – vijaykumarg
@ romain-piel Hai mai capito quale fosse il problema? Sto avendo lo stesso problema ma non riesco a trovare una soluzione. – Nick
no: -/è molto strano. Ora sto usando una connessione in parallelo con lo streaming.Non ideale ma almeno funziona in tutte le situazioni –