'How To Add Error Handling To Flutter When Running Chewie Video Player
can anyone explain why flutter will at times crash and open a new tab in your editor highlighting some prebuilt flutter code, an example being when I implement Chewie video player
class _UploadPlayerState extends State<UploadPlayer> {
ChewieController? chewieController;
final VideoPlayerController videoPlayerController =
VideoPlayerController.network(
"gs://tourme-7a61d.appspot.com/User_uploadVideo/videoplayback.mp4");
@override
void initState() {
videoPlayerController.initialize();
chewieController = ChewieController(
videoPlayerController: videoPlayerController,
aspectRatio: 16 / 9,
autoPlay: true,
looping: true,
autoInitialize: true,
);
super.initState();
}
@override
void dispose() {
videoPlayerController.dispose();
chewieController!.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Container(
color: Colors.black,
child: Center(child: Chewie(controller: chewieController!)),
);
}
When I try and run this code in the android emulator flutter crashes and tabs to future_impl.dart in Vscode and highlights line 44 if (!future._mayComplete) throw new StateError("Future already completed");
This is a really strange issue flutter has, I can only think that it has something to do with the implementation of the package I'm using.
I was able to get an output in the debug console which is
E/ExoPlayerImplInternal(14460): Playback error
E/ExoPlayerImplInternal(14460): com.google.android.exoplayer2.ExoPlaybackException: Source error
E/ExoPlayerImplInternal(14460): at com.google.android.exoplayer2.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:640)
E/ExoPlayerImplInternal(14460): at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:612)
E/ExoPlayerImplInternal(14460): at android.os.Handler.dispatchMessage(Handler.java:102)
E/ExoPlayerImplInternal(14460): at android.os.Looper.loopOnce(Looper.java:201)
E/ExoPlayerImplInternal(14460): at android.os.Looper.loop(Looper.java:288)
E/ExoPlayerImplInternal(14460): at android.os.HandlerThread.run(HandlerThread.java:67)
E/ExoPlayerImplInternal(14460): Caused by: com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: java.net.MalformedURLException: unknown protocol: gs
E/ExoPlayerImplInternal(14460): at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:365)
E/ExoPlayerImplInternal(14460): at com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:258)
E/ExoPlayerImplInternal(14460): at com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:84)
E/ExoPlayerImplInternal(14460): at com.google.android.exoplayer2.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:1009)
E/ExoPlayerImplInternal(14460): at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:412)
E/ExoPlayerImplInternal(14460): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
E/ExoPlayerImplInternal(14460): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
E/ExoPlayerImplInternal(14460): at java.lang.Thread.run(Thread.java:1012)
E/ExoPlayerImplInternal(14460): Caused by: java.net.MalformedURLException: unknown protocol: gs
E/ExoPlayerImplInternal(14460): at java.net.URL.<init>(URL.java:608)
E/ExoPlayerImplInternal(14460): at java.net.URL.<init>(URL.java:498)
E/ExoPlayerImplInternal(14460): at java.net.URL.<init>(URL.java:447)
E/ExoPlayerImplInternal(14460): at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:507)
E/ExoPlayerImplInternal(14460): at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:359)
E/ExoPlayerImplInternal(14460): ... 7 more
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|