From 685090f1c95ff3550ecfcb48f0009d7e25cfa677 Mon Sep 17 00:00:00 2001 From: orz12 Date: Sat, 20 Jul 2024 19:29:25 +0800 Subject: [PATCH] =?UTF-8?q?mod:=20=E8=B0=83=E6=95=B4=E8=A7=86=E9=A2=91?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E9=87=8D=E8=AF=95=E7=AD=96=E7=95=A5=EF=BC=8C?= =?UTF-8?q?=E9=81=BF=E5=85=8D=E9=A2=91=E7=B9=81=E6=89=93=E6=89=B0=E5=92=8C?= =?UTF-8?q?=E5=B0=9D=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/plugin/pl_player/controller.dart | 40 +++++++++++++++++----------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/lib/plugin/pl_player/controller.dart b/lib/plugin/pl_player/controller.dart index 2c4a7ef1..a90cda68 100644 --- a/lib/plugin/pl_player/controller.dart +++ b/lib/plugin/pl_player/controller.dart @@ -729,14 +729,14 @@ class PlPlayerController { } makeHeartBeat(event.inSeconds); }), - videoPlayerController!.stream.duration.listen((event) { + videoPlayerController!.stream.duration.listen((Duration event) { duration.value = event; }), - videoPlayerController!.stream.buffer.listen((event) { + videoPlayerController!.stream.buffer.listen((Duration event) { _buffered.value = event; updateBufferedSecond(); }), - videoPlayerController!.stream.buffering.listen((event) { + videoPlayerController!.stream.buffering.listen((bool event) { isBuffering.value = event; videoPlayerServiceHandler.onStatusChange( playerStatus.status.value, event); @@ -746,23 +746,33 @@ class PlPlayerController { // print(event); // SmartDialog.showToast('视频加载日志: $event'); // }), - videoPlayerController!.stream.error.listen((event) { - if (event.startsWith("Failed to open https://")) { + videoPlayerController!.stream.error.listen((String event) { + if (event.startsWith("Failed to open https://") || + event.startsWith("Can not open external file https://") || + //tcp: ffurl_read returned 0xdfb9b0bb + //tcp: ffurl_read returned 0xffffff99 + event.startsWith('tcp: ffurl_read returned ')) { EasyThrottle.throttle('videoPlayerController!.stream.error.listen', - const Duration(milliseconds: 1000), () { - SmartDialog.showToast('视频链接打开失败,重试中', - displayTime: const Duration(milliseconds: 500)); - refreshPlayer(); + const Duration(milliseconds: 10000), () { + Future.delayed(const Duration(milliseconds: 3000), () { + print("isBuffering.value: ${isBuffering.value}"); + print("_buffered.value: ${_buffered.value}"); + if (isBuffering.value && _buffered.value == Duration.zero) { + refreshPlayer(); + SmartDialog.showToast('视频链接打开失败,重试中', + displayTime: const Duration(milliseconds: 500)); + } + }); }); return; } print('videoPlayerController!.stream.error.listen'); print(event); - //tcp: ffurl_read returned 0xdfb9b0bb - //tcp: ffurl_read returned 0xffffff99 - if (!event.startsWith('tcp: ffurl_read returned ')) { - SmartDialog.showToast('视频加载错误, $event'); + if (event.startsWith('Could not open codec')) { + SmartDialog.showToast('无法加载解码器, $event,可能会切换至软解'); + return; } + SmartDialog.showToast('视频加载错误, $event'); }), // videoPlayerController!.stream.volume.listen((event) { // if (!mute.value && _volumeBeforeMute != event) { @@ -770,10 +780,10 @@ class PlPlayerController { // } // }), // 媒体通知监听 - onPlayerStatusChanged.listen((event) { + onPlayerStatusChanged.listen((PlayerStatus event) { videoPlayerServiceHandler.onStatusChange(event, isBuffering.value); }), - onPositionChanged.listen((event) { + onPositionChanged.listen((Duration event) { EasyThrottle.throttle( 'mediaServicePosition', const Duration(seconds: 1),