Исключение при потоковой передаче аудио на Android Media Player, на буфере охттп - PullRequest
0 голосов
/ 29 ноября 2018
E/JavaBinder: *** Uncaught remote exception!  (Exceptions are not yet supported across processes.)
    java.lang.ArrayIndexOutOfBoundsException: length=8192; index=8192
     at com.android.okhttp.okio.Buffer.writeByte(Buffer.java:973)
     at com.android.okhttp.internal.Platform.concatLengthPrefixed(Platform.java:212)
     at com.android.okhttp.internal.Platform.configureTlsExtensions(Platform.java:116)
     at com.android.okhttp.internal.io.RealConnection.connectTls(RealConnection.java:187)
     at com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:149)
     at com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:112)
     at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:184)
     at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:126)
     at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:95)
     at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:281)
     at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:224)
     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:461)
     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:407)
     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:538)
     at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode(DelegatingHttpsURLConnection.java:105)
     at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:26)
     at android.media.MediaHTTPConnection.seekTo(MediaHTTPConnection.java:212)
     at android.media.MediaHTTPConnection.getSize(MediaHTTPConnection.java:374)
     at android.media.IMediaHTTPConnection$Stub.onTransact(IMediaHTTPConnection.java:81)
     at android.os.Binder.execTransact(Binder.java:731)

Это исключение возникает при потоковой передаче и буферизации Android-проигрывателя, игрок застрял на одной и той же позиции в течение необычного периода времени, а иногда и навсегда.

1 Ответ

0 голосов
/ 30 мая 2019

Не думаю, что ты можешь многое сделать. было сообщено разработчикам okhttp.Но, как они указывают, ошибка связана с внутренней упаковкой версии okhttp, которая включена в Android.Нет ошибки с разработанной извне версией Square, поэтому они по праву закрыли проблему как не являющуюся проблемой.

Ошибка была сообщена в Google , но она не похожа ни на какуюдействие было предпринято за последние почти 2 года.

Возможно, вы могли бы включить в свой проект более новую версию okhttp из квадрата в исходном коде и как-то сказать MediaHTTPConnection использовать okhttp3 реализацию HttpURLConnection,Существует OkUrlFactory , который можно использовать с URL.setURLStreamHandlerFactory в java.Однако это устарело, и, возможно, не стоит переопределять встроенную логику обработчика потока URL.

Фактически, она была удалена из последних версий okhttp.Разработчик, который удалил его, создал ObsoleteUrlFactory.java , который вы можете скопировать / вставить в свой проект и использовать как:

OkHttpClient okHttpClient = new OkHttpClient();
URL.setURLStreamHandlerFactory(new ObsoleteUrlFactory(okHttpClient));
...