gpt4 book ai didi

flutter - 如何捕捉flutter video_player插件错误?

转载 作者:行者123 更新时间:2023-12-04 14:37:39 25 4
gpt4 key购买 nike

如何在 flutter video_player 插件上捕获错误?
错误是 Source error .发生此错误时,我想显示错误消息。

I/ExoPlayerImpl(31473): Init 98a4284 [ExoPlayerLib/2.9.6] [kenzo, Redmi Note 3, Xiaomi, 23]
E/ExoPlayerImplInternal(31473): Source error.
E/ExoPlayerImplInternal(31473): com.google.android.exoplayer2.source.UnrecognizedInputFormatException: None of the available extractors (MatroskaExtractor, FragmentedMp4Extractor, Mp4Extractor, Mp3Extractor, AdtsExtractor, Ac3Extractor, TsExtractor, FlvExtractor, OggExtractor, PsExtractor, WavExtractor, AmrExtractor) could read the stream.
E/ExoPlayerImplInternal(31473): at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractorHolder.selectExtractor(ExtractorMediaPeriod.java:973)
E/ExoPlayerImplInternal(31473): at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:891)
E/ExoPlayerImplInternal(31473): at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:381)
E/ExoPlayerImplInternal(31473): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
E/ExoPlayerImplInternal(31473): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
E/ExoPlayerImplInternal(31473): at java.lang.Thread.run(Thread.java:818)
I/flutter (31473): Another exception was thrown: A ChewieController was used after being disposed.
I/ExoPlayerImpl(31473): Release 98a4284 [ExoPlayerLib/2.9.6] [kenzo, Redmi Note 3, Xiaomi, 23] [goog.exo.core]


我的代码

animeVidBloc.vidCtrl = VideoPlayerController.network(streamurl.src)
..initialize().then((_) {
animeVidBloc.vidCtrl.pause();
animeVidBloc.cheCtrl = ChewieController(
videoPlayerController: animeVidBloc.vidCtrl,
aspectRatio: animeVidBloc.vidCtrl.value.aspectRatio,
autoPlay: false,
looping: false,
allowedScreenSleep: false,
);
animeVidBloc.isLoadingData = false;
animeVidBloc.isLoadingVideo = false;
animeVidBloc.cheCtrl.pause();
animeVidBloc.rebuildWidgets(ids: ['body', 'download']);
});

使用 .catchinitialize().then没有发现错误,
示例视频 https://str09.vidoza.net/x4lfoiywwbzpvjumxbaeidisvq6cmoufczvmicnesasm4zqpyunkofpekfla/v.mp4

最佳答案

您可以将监听器附加到 VidePlayerController对象来捕捉 Controller 的状态。

VideoPlayerController _controller = VideoPlayerController.network(
"https://str09.vidoza.net/x4lfoiywwbzpvjumxbaeidisvq6cmoufczvmicnesasm4zqpyunkofpekfla/v.mp4")
..initialize();

_controller.addListener(() {
if (_controller.value.hasError) {
print(_controller.value.errorDescription);
}
if (_controller.value.initialized) {}
if (_controller.value.isBuffering) {}
});

关于flutter - 如何捕捉flutter video_player插件错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55967555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com