flutter / flutter

Flutter makes it easy and fast to build beautiful apps for mobile and beyond
https://flutter.dev
BSD 3-Clause "New" or "Revised" License
165.17k stars 27.25k forks source link

Http2.0 protocol and m3u8 format address cannot be played #56020

Closed LHWen closed 4 years ago

LHWen commented 4 years ago
Use version:video_player: ^0.10.9+1
Computer version:macOS  10.15.2
Network protocol:http2.0

Video address: https://www.acoolag.com/files/6570255ceb09709311cb152cdc565e12.m3u8

remarks:This address can play normally on safari

------- iOS - log --------

No error message, unable to play.

------- Android - log --------

error message :

I/ExoPlayerImpl(13743): Init 77aceec [ExoPlayerLib/2.9.6] [generic_x86_arm, AOSP on IA Emulator, Google, 28]
E/ExoPlayerImplInternal(13743): Source error.
E/ExoPlayerImplInternal(13743): com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: Unable to connect to https://www.acoolag.com/files/6570255ceb09709311cb152cdc565e12.m3u8
E/ExoPlayerImplInternal(13743):     at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:281)
E/ExoPlayerImplInternal(13743):     at com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:83)
E/ExoPlayerImplInternal(13743):     at com.google.android.exoplayer2.upstream.DataSourceInputStream.checkOpened(DataSourceInputStream.java:102)
E/ExoPlayerImplInternal(13743):     at com.google.android.exoplayer2.upstream.DataSourceInputStream.open(DataSourceInputStream.java:65)
E/ExoPlayerImplInternal(13743):     at com.google.android.exoplayer2.upstream.ParsingLoadable.load(ParsingLoadable.java:156)
E/ExoPlayerImplInternal(13743):     at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:381)
E/ExoPlayerImplInternal(13743):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/ExoPlayerImplInternal(13743):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/ExoPlayerImplInternal(13743):     at java.lang.Thread.run(Thread.java:764)
E/ExoPlayerImplInternal(13743): Caused by: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
E/ExoPlayerImplInternal(13743):     at com.android.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(ConscryptFileDescriptorSocket.java:229)
E/ExoPlayerImplInternal(13743):     at com.android.okhttp.internal.io.RealConnection.connectTls(RealConnection.java:192)
E/ExoPlayerImplInternal(13743):     at com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:149)
E/ExoPlayerImplInternal(13743):     at com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:112)
E/ExoPlayerImplInternal(13743):     at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:184)
E/ExoPlayerImplInternal(13743):     at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:126)
E/ExoPlayerImplInternal(13743):     at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:95)
E/ExoPlayerImplInternal(13743):     at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:281)
E/ExoPlayerImplInternal(13743):     at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:224)
E/ExoPlayerImplInternal(13743):     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:461)
E/ExoPlayerImplInternal(13743):     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:127)
E/ExoPlayerImplInternal(13743):     at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.connect(DelegatingHttpsURLConnection.java:89)
E/ExoPlayerImplInternal(13743):     at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:26)
E/ExoPlayerImplInternal(13743):     at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:528)
E/ExoPlayerImplInternal(13743):     at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:444)
E/ExoPlayerImplInternal(13743):     at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:279)
E/ExoPlayerImplInternal(13743):     ... 8 more
E/ExoPlayerImplInternal(13743): Caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
E/ExoPlayerImplInternal(13743):     at com.android.org.conscrypt.TrustManagerImpl.verifyChain(TrustManagerImpl.java:661)
E/ExoPlayerImplInternal(13743):     at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:539)
E/ExoPlayerImplInternal(13743):     at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:495)
E/ExoPlayerImplInternal(13743):     at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:418)
E/ExoPlayerImplInternal(13743):     at com.android.org.conscrypt.TrustManagerImpl.getTrustedChainForServer(TrustManagerImpl.java:339)
E/ExoPlayerImplInternal(13743):     at android.security.net.config.NetworkSecurityTrustManager.checkServerTrusted(NetworkSecurityTrustManager.java:94)
E/ExoPlayerImplInternal(13743):     at android.security.net.config.RootTrustManager.checkServerTrusted(RootTrustManager.java:88)
E/ExoPlayerImplInternal(13743):     at com.android.org.conscrypt.Platform.checkServerTrusted(Platform.java:208)
E/ExoPlayerImplInternal(13743):     at com.android.org.conscrypt.ConscryptFileDescriptorSocket.verifyCertificateChain(ConscryptFileDescriptorSocket.java:404)
E/ExoPlayerImplInternal(13743):     at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method)
E/ExoPlayerImplInternal(13743):     at com.android.org.conscrypt.NativeSsl.doHandshake(NativeSsl.java:375)
E/ExoPlayerImplInternal(13743):     at com.android.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(ConscryptFileDescriptorSocket.java:224)
E/ExoPlayerImplInternal(13743):     ... 23 more
E/ExoPlayerImplInternal(13743): Caused by: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
E/ExoPlayerImplInternal(13743):     ... 35 more
E/flutter (13743): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: PlatformException(VideoError, Video player had error com.google.android.exoplayer2.ExoPlaybackException: com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: Unable to connect to https://47.108.143.147:8443/fs/v1/6570255ceb09709311cb152cdc565e12.m3u8, null)
E/flutter (13743): #0      ChewieController._initialize (package:chewie/src/chewie_player.dart:291:7)
E/flutter (13743): <asynchronous suspension>
E/flutter (13743): #1      new ChewieController (package:chewie/src/chewie_player.dart:197:5)
E/flutter (13743): #2      _PlayerControllerState._initChewieView (package:netschool/models/home/controller/player_controller.dart:63:29)
E/flutter (13743): <asynchronous suspension>
E/flutter (13743): #3      _PlayerControllerState._curriculumList.<anonymous closure> (package:netschool/models/home/controller/player_controller.dart:350:11)
E/flutter (13743): #4      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:705:14)
E/flutter (13743): #5      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:788:36)
E/flutter (13743): #6      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24)
E/flutter (13743): #7      TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:486:11)
E/flutter (13743): #8      BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:264:5)
E/flutter (13743): #9      BaseTapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:236:7)
E/flutter (13743): #10     GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:156:27)
E/flutter (13743): #11     GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:222:20)
E/flutter (13743): #12     GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:198:22)
E/flutter (13743): #13     GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:156:7)
E/flutter (13743): #14     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:102:7)
E/flutter (13743): #15     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:86:7)
E/flutter (13743): #16     _rootRunUnary (dart:async/zone.dart:1138:13)
E/flutter (13743): #17     _CustomZone.runUnary (dart:async/zone.dart:1031:19)
E/flutter (13743): #18     _CustomZone.runUnaryGuarded (dart:async/zone.dart:933:7)
E/flutter (13743): #19     _invoke1 (dart:ui/hooks.dart:273:10)
E/flutter (13743): #20     _dispatchPointerDataPacket (dart:ui/hooks.dart:182:5)
E/flutter (13743): 
iapicca commented 4 years ago

Hi @LHWen I see there's an open issue addressing the case you described. Please follow up on that issue, I'm closing the current one as duplicate. If you disagree please write in the comments and I will reopen it. Thank you

github-actions[bot] commented 3 years ago

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.