mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
mod: 调整视频加载重试策略,避免频繁打扰和尝试
This commit is contained in:
@@ -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),
|
||||||
|
|||||||
Reference in New Issue
Block a user