Closed
Description
[REQUIRED] Issue description
When I played a video for a long time, maybe the network isn't good.so throw HttpDataSource$HttpDataSourceException: java.net.SocketTimeoutException: timeout when invoke read method. I want to catch this error at onPlayerError and to retry play .But I found i can't receive this error at this method. And after throw this error, exoplayer don't play anymore ,freeze at last frame.
[REQUIRED] Reproduction steps
SocketTimeoutException: timeout when read can't catch up by onPlayerError.
[REQUIRED] Link to test content
sorry, the content link is provisional.
[REQUIRED] A full bug report captured from the device
EventLogger: internalError [eventTime=6411.38, mediaPos=0.02, window=0, period=0, loadError
04-27 18:54:23.808 7101 7101 E EventLogger: com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: java.net.SocketTimeoutException: timeout
04-27 18:54:23.808 7101 7101 E EventLogger: at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.read(DefaultHttpDataSource.java:359)
04-27 18:54:23.808 7101 7101 E EventLogger: at com.google.android.exoplayer2.upstream.DefaultDataSource.read(DefaultDataSource.java:182)
04-27 18:54:23.808 7101 7101 E EventLogger: at com.google.android.exoplayer2.upstream.StatsDataSource.read(StatsDataSource.java:91)
04-27 18:54:23.808 7101 7101 E EventLogger: at com.google.android.exoplayer2.extractor.DefaultExtractorInput.readFromDataSource(DefaultExtractorInput.java:287)
04-27 18:54:23.808 7101 7101 E EventLogger: at com.google.android.exoplayer2.extractor.DefaultExtractorInput.read(DefaultExtractorInput.java:62)
04-27 18:54:23.808 7101 7101 E EventLogger: at com.google.android.exoplayer2.extractor.ts.TsExtractor.fillBufferWithAtLeastOnePacket(TsExtractor.java:385)
04-27 18:54:23.808 7101 7101 E EventLogger: at com.google.android.exoplayer2.extractor.ts.TsExtractor.read(TsExtractor.java:275)
04-27 18:54:23.808 7101 7101 E EventLogger: at com.google.android.exoplayer2.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:982)
04-27 18:54:23.808 7101 7101 E EventLogger: at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:391)
04-27 18:54:23.808 7101 7101 E EventLogger: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
04-27 18:54:23.808 7101 7101 E EventLogger: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
04-27 18:54:23.808 7101 7101 E EventLogger: at java.lang.Thread.run(Thread.java:761)
04-27 18:54:23.808 7101 7101 E EventLogger: Caused by: java.net.SocketTimeoutException: timeout
04-27 18:54:23.808 7101 7101 E EventLogger: at com.android.okhttp.okio.Okio$3.newTimeoutException(Okio.java:212)
04-27 18:54:23.808 7101 7101 E EventLogger: at com.android.okhttp.okio.AsyncTimeout.exit(AsyncTimeout.java:261)
04-27 18:54:23.808 7101 7101 E EventLogger: at com.android.okhttp.okio.AsyncTimeout$2.read(AsyncTimeout.java:215)
04-27 18:54:23.808 7101 7101 E EventLogger: at com.android.okhttp.okio.RealBufferedSource.read(RealBufferedSource.java:50)
04-27 18:54:23.808 7101 7101 E EventLogger: at com.android.okhttp.internal.http.HttpConnection$UnknownLengthSource.read(HttpConnection.java:516)
04-27 18:54:23.808 7101 7101 E EventLogger: at com.android.okhttp.okio.RealBufferedSource$1.read(RealBufferedSource.java:371)
04-27 18:54:23.808 7101 7101 E EventLogger: at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.readInternal(DefaultHttpDataSource.java:696)
04-27 18:54:23.808 7101 7101 E EventLogger: at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.read(DefaultHttpDataSource.java:357)
04-27 18:54:23.808 7101 7101 E EventLogger: ... 11 more
04-27 18:54:23.808 7101 7101 E EventLogger: Caused by: java.net.SocketException: Socket closed
04-27 18:54:23.808 7101 7101 E EventLogger: at java.net.SocketInputStream.socketRead0(Native Method)
04-27 18:54:23.808 7101 7101 E EventLogger: at java.net.SocketInputStream.read(SocketInputStream.java:151)
04-27 18:54:23.808 7101 7101 E EventLogger: at java.net.SocketInputStream.read(SocketInputStream.java:120)
04-27 18:54:23.808 7101 7101 E EventLogger: at com.android.okhttp.okio.Okio$2.read(Okio.java:136)
04-27 18:54:23.808 7101 7101 E EventLogger: at com.android.okhttp.okio.AsyncTimeout$2.read(AsyncTimeout.java:211)
04-27 18:54:23.808 7101 7101 E EventLogger: ... 16 more
04-27 18:54:23.808 7101 7101 E EventLogger: ]
[REQUIRED] Version of ExoPlayer being used
the latest.
[REQUIRED] Device(s) and version(s) of Android being used
H6, Android 7.1