januwA / flutter_video_box

flutter_video_box
MIT License
22 stars 12 forks source link

Error playing http links with android 10( Unhandled Exception: PlatformException(VideoError, Video player had error com.google.android.exoplayer2.ExoPlaybackException: com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException) #23

Closed fuedgabriel closed 4 years ago

fuedgabriel commented 4 years ago

The error only occurs when I try to play a video with an http link. but this error only happened on the phone: xiaomi mi lite 8 with android 10 link: http://svr1---s551-xjgk1ahg-cdn.gvideo.g-storage.network/animes/b-4/animes/dragon-ball-z/dublado/hd/290.mp4?rm=FygGMOYAxseNJZBhiUN7_w&rf=1588004824 Ithink this erro is caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. I can only play https links and I cannot play http links because of the certificate.

Erro -------------------------------------------------------------------------------------------------

E/flutter (19527): [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 http://svr1---s551-xjgk1ahg-cdn.gvideo.g-storage.network/animes/b-4/animes/dragon-ball-z/dublado/hd/290.mp4?rm=FygGMOYAxseNJZBhiUN7_w&rf=1588004824, null) E/flutter (19527): #0 _VideoController.initialize (package:videobox/video.controller.dart:595:5) E/flutter (19527): E/flutter (19527): #1 $VideoController.initialize. (package:video_box/video.controller.g.dart:304:52) E/flutter (19527): #2 _rootRun (dart:async/zone.dart:1126:13) E/flutter (19527): #3 _ZoneDelegate.run (dart:async/zone.dart:713:19) E/flutter (19527): #4 AsyncAction._run (package:mobx/src/api/async/async_action.dart:44:29) E/flutter (19527): #5 _CustomZone.run (dart:async/zone.dart:1023:19) E/flutter (19527): #6 AsyncAction.run (package:mobx/src/api/async/asyncaction.dart:29:26) E/flutter (19527): #7 $VideoController.initialize (package:video_box/video.controller.g.dart:304:36) E/flutter (19527): #8 _PlayerVideoState.initState (package:animese/screens/Player/Player.dart:65:9) E/flutter (19527): #9 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4355:58) E/flutter (19527): #10 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5) E/flutter (19527): #11 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14) E/flutter (19527): #12 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12) E/flutter (19527): #13 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14) E/flutter (19527): #14 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14) E/flutter (19527): #15 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12) E/flutter (19527): #16 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16) E/flutter (19527): #17 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5) E/flutter (19527): #18 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5) E/flutter (19527): #19 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5) E/flutter (19527): #20 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14) E/flutter (19527): #21 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12) E/flutter (19527): #22 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14) E/flutter (19527): #23 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14) E/flutter (19527): #24 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12) E/flutter (19527): #25 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14) E/flutter (19527): #26 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14) E/flutter (19527): #27 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12) E/flutter (19527): #28 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16) E/flutter (19527): #29 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5) E/flutter (19527): #30 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5) E/flutter (19527): #31 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11) E/flutter (19527): #32 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5) E/flutter (19527): #33 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14) E/flutter (19527): #34 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12) E/flutter (19527): #35 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14) E/flutter (19527): #36 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14) E/flutter (19527): #37 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12) E/flutter (19527): #38 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14) E/flutter (19527): #39 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14) E/flutter (19527): #40 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12) E/flutter (19527): #41 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16) E/flutter (19527): #42 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5) E/flutter (19527): #43 Comp


Links with similar errors: https://github.com/google/ExoPlayer/issues/4204 https://github.com/google/ExoPlayer/issues/4599 https://www.gitmemory.com/issue/flutter/flutter/36849/515026135 Oficcial: https://github.com/flutter/flutter/issues/56020 https://github.com/flutter/flutter/issues/26851

fuedgabriel commented 4 years ago

Solved

Link about updating android 9 or android P: Android 9 Exception is: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

Stack overflow link teaching how to solve the problem: Stack overflow

Solution of the problem-->

Add in "AndroidManifest.xml" --> android:usesCleartextTraffic="true"

android:usesCleartextTraffic="true"

android:usesCleartextTraffic="true" is after \ In the flutter is located at: "YourAppFolder/android/app/src/main/AndroidManifest.xml"


Example-->

<application
           android:usesCleartextTraffic="true"            android:name="io.flutter.app.FlutterApplication"            android:label="animese"            android:icon="@mipmap/ic_launcher"> \

What happens -->

What happens is that on Android 9 or higher http requests were blocked on android apps, allowing only https requests. And when you add android:usesCleartextTraffic="true" in the code, you allow http requests in your android app.