I am making an app for a radio station outputting to FM as well as a shoutcast server, and the app should play the stream in the background. Unfortunately I’m not very familiar with the direct HTTP MPEG streaming protocol shoutcast uses, nor android at all. Currently I have a MediaPlayer
set to play from the URL directly and it works perfectly for up to a minute. After that, I receive the following trace:
V resetDrmState: mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false
V cleanDrmObj: mDrmObj=null mDrmSessionId=null
D _release native called
W java.net.SocketException: Socket closed
W at java.net.SocketInputStream.socketRead0(Native Method)
W at java.net.SocketInputStream.socketRead(SocketInputStream.java:119)
W at java.net.SocketInputStream.read(SocketInputStream.java:176)
W at java.net.SocketInputStream.read(SocketInputStream.java:144)
W at com.android.okhttp.okio.Okio$2.read(Okio.java:138)
W at com.android.okhttp.okio.AsyncTimeout$2.read(AsyncTimeout.java:213)
W at com.android.okhttp.okio.RealBufferedSource.read(RealBufferedSource.java:51)
W at com.android.okhttp.internal.http.Http1xStream$UnknownLengthSource.read(Http1xStream.java:491)
W at com.android.okhttp.okio.RealBufferedSource$1.read(RealBufferedSource.java:372)
W at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
W at java.io.BufferedInputStream.read(BufferedInputStream.java:347)
W at android.media.MediaHTTPConnection.readAt(MediaHTTPConnection.java:404)
W at android.media.MediaHTTPConnection.native_readAt(Native Method)
W at android.media.MediaHTTPConnection.readAt(MediaHTTPConnection.java:390)
W at android.media.IMediaHTTPConnection$Stub.onTransact(IMediaHTTPConnection.java:143)
W at android.os.Binder.execTransactInternal(Binder.java:1162)
W at android.os.Binder.execTransact(Binder.java:1126)
D _release native finished
W mediaplayer went away with unhandled events
W mediaplayer went away with unhandled events
I tried specifying that it’s a music stream, I profiled, I looked at the native implementations, but I can’t seem to find anything. I apologize in advance if my problem seems simplistic or the information I provided is insifficient, but I have been stuck on this for a good 3 hours.