Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to load in the middle of playback. exoplayer + okhttp3 #3349

Closed
c3stream opened this issue May 12, 2017 · 3 comments
Closed

Unable to load in the middle of playback. exoplayer + okhttp3 #3349

c3stream opened this issue May 12, 2017 · 3 comments

Comments

@c3stream
Copy link

I'm having trouble with a helpless error.

MP4
Unable to load in the middle of playback.
Seek operation cannot load.

Nexus 5x Android 6.0
Xperia Z5 Compact SO-02H Android 6.0
KFFOWI(Amazon Kindle) Android 5.1
au AQUOS SERIE SHL25 Android 5.0
dtab Compact d-02H Android 5.1
...and Other Devices

exoplayer error?
okhttp3 error?
Or is it an error on the video delivery side?

Because the video content is private, I send it if I can tell a destination.

dependencies {
...
    compile 'com.squareup.okio:okio:1.12.0'
    compile 'com.squareup.okhttp3:okhttp:3.7.0'
    compile 'com.google.android.exoplayer:exoplayer:r2.4.0'
    compile 'com.google.android.exoplayer:extension-okhttp:r2.4.0'
}

Help me.

Thank you.

com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: okhttp3.internal.http2.StreamResetException: stream was reset: PROTOCOL_ERROR
    at com.google.android.exoplayer2.ext.okhttp.OkHttpDataSource.read(OkHttpDataSource.java:208)
    at com.google.android.exoplayer2.upstream.DefaultDataSource.read(DefaultDataSource.java:128)
    at com.google.android.exoplayer2.extractor.DefaultExtractorInput.readFromDataSource(DefaultExtractorInput.java:257)
    at com.google.android.exoplayer2.extractor.DefaultExtractorInput.read(DefaultExtractorInput.java:59)
    at com.google.android.exoplayer2.extractor.DefaultTrackOutput.sampleData(DefaultTrackOutput.java:484)
    at com.google.android.exoplayer2.extractor.mp4.Mp4Extractor.readSample(Mp4Extractor.java:441)
    at com.google.android.exoplayer2.extractor.mp4.Mp4Extractor.read(Mp4Extractor.java:152)
    at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:652)
    at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:295)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
    at java.lang.Thread.run(Thread.java:818)
Caused by: okhttp3.internal.http2.StreamResetException: stream was reset: PROTOCOL_ERROR
    at okhttp3.internal.http2.Http2Stream$FramingSource.checkNotClosed(Http2Stream.java:436)
    at okhttp3.internal.http2.Http2Stream$FramingSource.read(Http2Stream.java:338)
    at okio.ForwardingSource.read(ForwardingSource.java:35)
    at okio.RealBufferedSource$1.read(RealBufferedSource.java:429)
    at com.google.android.exoplayer2.ext.okhttp.OkHttpDataSource.readInternal(OkHttpDataSource.java:357)
    at com.google.android.exoplayer2.ext.okhttp.OkHttpDataSource.read(OkHttpDataSource.java:206)
	... 11 more

com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: java.net.SocketTimeoutException: timeout
    at com.google.android.exoplayer2.ext.okhttp.OkHttpDataSource.read(OkHttpDataSource.java:208)
    at com.google.android.exoplayer2.upstream.DefaultDataSource.read(DefaultDataSource.java:128)
    at com.google.android.exoplayer2.extractor.DefaultExtractorInput.readFromDataSource(DefaultExtractorInput.java:257)
    at com.google.android.exoplayer2.extractor.DefaultExtractorInput.read(DefaultExtractorInput.java:59)
    at com.google.android.exoplayer2.extractor.DefaultTrackOutput.sampleData(DefaultTrackOutput.java:484)
    at com.google.android.exoplayer2.extractor.mp4.Mp4Extractor.readSample(Mp4Extractor.java:441)
    at com.google.android.exoplayer2.extractor.mp4.Mp4Extractor.read(Mp4Extractor.java:152)
    at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:652)
    at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:295)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
    at java.lang.Thread.run(Thread.java:818)
Caused by: java.net.SocketTimeoutException: timeout
    at okhttp3.internal.http2.Http2Stream$StreamTimeout.newTimeoutException(Http2Stream.java:593)
    at okhttp3.internal.http2.Http2Stream$StreamTimeout.exitAndThrowIfTimedOut(Http2Stream.java:601)
    at okhttp3.internal.http2.Http2Stream$FramingSource.waitUntilReadable(Http2Stream.java:374)
    at okhttp3.internal.http2.Http2Stream$FramingSource.read(Http2Stream.java:337)
    at okio.ForwardingSource.read(ForwardingSource.java:35)
    at okio.RealBufferedSource$1.read(RealBufferedSource.java:429)
    at com.google.android.exoplayer2.ext.okhttp.OkHttpDataSource.readInternal(OkHttpDataSource.java:357)
    at com.google.android.exoplayer2.ext.okhttp.OkHttpDataSource.read(OkHttpDataSource.java:206)
	... 11 more
@swankjesse
Copy link
Member

Either OkHttp is misbehaving or the origin server is misbehaving. Do you know what server is serving this URL?

@natez0r
Copy link

natez0r commented Sep 13, 2017

I know this is closed, but could this be related to #3146 ?

We are seeing elevated sockettimeout errors when using http2 with exoplayer

@CoryCharlton
Copy link

I'm also seeing SocketTimeout / dead client issues with OkHttp and Exoplayer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants