mod: 调整视频加载重试策略,避免频繁打扰和尝试

This commit is contained in:
orz12
2024-07-20 19:29:25 +08:00
parent 1426f5f072
commit 685090f1c9

View File

@@ -729,14 +729,14 @@ class PlPlayerController {
} }
makeHeartBeat(event.inSeconds); makeHeartBeat(event.inSeconds);
}), }),
videoPlayerController!.stream.duration.listen((event) { videoPlayerController!.stream.duration.listen((Duration event) {
duration.value = event; duration.value = event;
}), }),
videoPlayerController!.stream.buffer.listen((event) { videoPlayerController!.stream.buffer.listen((Duration event) {
_buffered.value = event; _buffered.value = event;
updateBufferedSecond(); updateBufferedSecond();
}), }),
videoPlayerController!.stream.buffering.listen((event) { videoPlayerController!.stream.buffering.listen((bool event) {
isBuffering.value = event; isBuffering.value = event;
videoPlayerServiceHandler.onStatusChange( videoPlayerServiceHandler.onStatusChange(
playerStatus.status.value, event); playerStatus.status.value, event);
@@ -746,23 +746,33 @@ class PlPlayerController {
// print(event); // print(event);
// SmartDialog.showToast('视频加载日志: $event'); // SmartDialog.showToast('视频加载日志: $event');
// }), // }),
videoPlayerController!.stream.error.listen((event) { videoPlayerController!.stream.error.listen((String event) {
if (event.startsWith("Failed to open https://")) { 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', EasyThrottle.throttle('videoPlayerController!.stream.error.listen',
const Duration(milliseconds: 1000), () { const Duration(milliseconds: 10000), () {
SmartDialog.showToast('视频链接打开失败,重试中', Future.delayed(const Duration(milliseconds: 3000), () {
displayTime: const Duration(milliseconds: 500)); print("isBuffering.value: ${isBuffering.value}");
refreshPlayer(); print("_buffered.value: ${_buffered.value}");
if (isBuffering.value && _buffered.value == Duration.zero) {
refreshPlayer();
SmartDialog.showToast('视频链接打开失败,重试中',
displayTime: const Duration(milliseconds: 500));
}
});
}); });
return; return;
} }
print('videoPlayerController!.stream.error.listen'); print('videoPlayerController!.stream.error.listen');
print(event); print(event);
//tcp: ffurl_read returned 0xdfb9b0bb if (event.startsWith('Could not open codec')) {
//tcp: ffurl_read returned 0xffffff99 SmartDialog.showToast('无法加载解码器, $event,可能会切换至软解');
if (!event.startsWith('tcp: ffurl_read returned ')) { return;
SmartDialog.showToast('视频加载错误, $event');
} }
SmartDialog.showToast('视频加载错误, $event');
}), }),
// videoPlayerController!.stream.volume.listen((event) { // videoPlayerController!.stream.volume.listen((event) {
// if (!mute.value && _volumeBeforeMute != event) { // if (!mute.value && _volumeBeforeMute != event) {
@@ -770,10 +780,10 @@ class PlPlayerController {
// } // }
// }), // }),
// 媒体通知监听 // 媒体通知监听
onPlayerStatusChanged.listen((event) { onPlayerStatusChanged.listen((PlayerStatus event) {
videoPlayerServiceHandler.onStatusChange(event, isBuffering.value); videoPlayerServiceHandler.onStatusChange(event, isBuffering.value);
}), }),
onPositionChanged.listen((event) { onPositionChanged.listen((Duration event) {
EasyThrottle.throttle( EasyThrottle.throttle(
'mediaServicePosition', 'mediaServicePosition',
const Duration(seconds: 1), const Duration(seconds: 1),