wang-bin / fvp

Flutter video player plugin for all desktop+mobile platforms. download prebuilt examples from github actions. https://pub.dev/packages/fvp
BSD 3-Clause "New" or "Revised" License
126 stars 20 forks source link

异常信息优化 #20

Closed AnonymHK closed 9 months ago

AnonymHK commented 10 months ago

还是那个问题 c97b2999176131eb731362186cf461a

例如播放地址: https://content.jwplatform.com/manifests/404.m3u8 正常的是 https://content.jwplatform.com/manifests/vM7nH0Kl.m3u8

错误信息完全不知道是什么错误,我还以为是 https://github.com/zezo357/flutter_meedu_videoplayer/issues/169 这个错误再次出现,弄了半天才发现是url不正确,异常信息应该给出具体真实的错误描述!

AnonymHK commented 10 months ago

播放地址不存在时,播放器没有任何返回! 播放地址如果是502之类的错误,会报上图中的错误,预期是应该给出错误详情,否则上层不知道该如何处理错误!

AnonymHK commented 10 months ago

期望此功能能够尽快得到支持,我们之前的错误处理更换到fvp后没有任何作用了!而且很不方便在出错的时候排查问题!感谢!

wang-bin commented 10 months ago

你们到错误处理是怎么样的?video_player好像没提供相关功能

AnonymHK commented 10 months ago

我们根据不同的错误信息提示用户或者让用户点击重试

例如超时之类的,我们会提供重试按钮,其他错误我们会在提示框内提示错误

VideoPlayerController.network 方法在加载网络视频时可能会抛出多种类型错误。 以下是一些常见的错误类型:

VideoException:表示视频加载或播放过程中的一般异常。 NetworkException:表示网络连接或请求相关的异常,如网络不可用、请求超时等。 FormatException:表示视频 URL 格式不正确的异常。 UnsupportedValueError:表示视频播放器不支持的参数值。 PlatformException:表示平台相关的异常,如原生平台的错误或限制。

AnonymHK commented 10 months ago

try { _controller = VideoPlayerController.network('YOUR_VIDEO_URL'); await _controller.initialize(); setState(() { _isError = false; }); } on VideoException catch (e) { // 处理视频异常 print('Video Exception: $e'); } on NetworkException catch (e) { // 处理网络异常 print('Network Exception: $e'); } on FormatException catch (e) { // 处理 URL 格式异常 print('URL Format Exception: $e'); } on UnsupportedValueError catch (e) { // 处理不支持的参数值异常 print('Unsupported Value Error: $e'); } on PlatformException catch (e) { // 处理平台相关异常 print('Platform Exception: $e'); } catch (e) { // 处理其他异常 print('Other Exception: $e'); }

我们使用的是flutter_meedu_videoplayer,(https://github.com/zezo357/flutter_meedu_videoplayer)
它的作者近期把插件切换把到了你的fvp,现在错误好像要不就没反应,要不就全是图里面那个 no stream!

wang-bin commented 10 months ago

VideoException, NetworkException, FormatException 这些异常有文档吗?我在官方的 video_player 源码里没看到

AnonymHK commented 10 months ago

额,抱歉,这些是我们自定义的异常,PlatformException 这个才是官方的通用异常!

try { _controller = VideoPlayerController.network('YOUR_VIDEO_URL'); await _controller.initialize(); setState(() { _isError = false; }); } on PlatformException catch (e) { // 处理视频加载或播放过程中的异常 print('Video Player Exception: $e'); } catch (e) { // 处理其他异常、这里根据不同的消息去处理不同的异常! print('Other Exception: $e'); }

wang-bin commented 10 months ago

最新git代码在打开视频失败的时候加了一个异常,可以解决你的场景,但是错误信息不会很具体。全面的错误处理需要时间

AnonymHK commented 10 months ago

好的,我会测试!谢谢!